إعـــــــلان

تقليص
لا يوجد إعلان حتى الآن.

سلسلة شروحات الأكشن سكريبت رقم 6 أكواد التعامل مع المصفوفات Table

تقليص
هذا الموضوع مغلق.
X
X
 
  • تصفية - فلترة
  • الوقت
  • عرض
إلغاء تحديد الكل
مشاركات جديدة

  • سلسلة شروحات الأكشن سكريبت رقم 6 أكواد التعامل مع المصفوفات Table







    سلسلة شروحات الأكشن سكريبت رقم 6 أكواد التعامل مع المصفوفات Table


    ينصح بمراجعة الموضوعين التاليين نظرا لإرتباطهما إرتباطا وثيقا بهذا الشرح المقدم فى هذا الموضوع :

    سلسلة شروحات الأكشن سكريبت رقم 2 المصفوفات جزء أول

    سلسلة شروحات الأكشن سكريبت رقم 3 المصفوفات جزء ثانى




    جدول محتويات أكواد التعامل مع المصفوفات او الجداول كما بالصورة التالية :






    Table.Concat


    يستخدم هذا الكود فى الفصل بين محتويات أى جدول بأى علامة تحددها أنت أو تختارها أنت فيكون الناتج لهذا الكود هو كل قيمة مخزنة فى هذا الجدول مفصولة عن القيمة الأخرى بأى علامة تحددها أنت وطبعا يمكن إختيار نقطة البدأ فى إستعمال هذه العلامة الفاصلة هل ستكون من الإندكس الأول أو الثانى أو ....... وهكذا .

    أى أننا يمكننا أن نقول أن هذا الكود يعمل أو يقوم بإرجاع نصى لأى جدول أو للقيم المخزنة فى جدول ويتم الفصل بين القيم بأى محدد من إختيارك ومن أى مكان تحددة أى يمكنك إختيار إندكس البداية و النهاية المطلوب عرضهم و فصلهم بعلامة من إختيارك .





    1- "SourceTable" هو إسم المصفوفة أو الجدول المراد عرض محتوياته نصيا تسلسليا .

    2- "Separator" هو العلامة الفاصلة المراد وضعها بين كل قيمة من قيم الجدول والأخرى التى تليها .

    3- "Start" هو رقم الإندكس من الجدول المراد البدأ منه .

    4- "End" هو رقم الإندكس من الجدول المراد الإنتهاء عنده أو الوقوف عنده أو التوقف عنده ويمكن التعبير عن آخر إندكس بالرقم 1- أو بــ TABLE_ALL .

    5- " ResultVariable " هو المتغير المراد حفظ النتيجة والتى ستكون نصية فية
    هذه النتيجة عبارة عن كل قيمة متبوعة بالفاصلة التى إخترناها .

    مثال على الصورة السابقة كان لدينا كود لقراءة محتويات ملف نصى إسمة Scintilla.lua هذه القراءة كانت قراءة جدولية بإستخدام الكود TextFile.ReadToTable وتم تخزين الناتج فى متغير إسمه result

    فكان الكود كالتالى :

    كود PHP:
    --
    result TextFile.ReadToTable("AutoPlay\\Scripts\\Scintilla.lua");
    result2 Table.Concat(result";"510);
    Input.SetText("Input1"result2); 


    فى الكود السابق تم قراءة محتويات ملف نصى قراءة جدولية وتخزينها فى متغير ومن ثم تم سلسلة محتويات الجدول إبتداءا من الإندكس رقم 5 وإنتهاءا عند الإندكس رقم 10 ووضع فاصلة منقوطة بين كل إندكس وآخر مما تم تحديدة ليظهر على شكل نصى فى المحتوى الأخير فى وسيلة العرض الإينبوت على سبيل المثال .




    Table.Count


    يستخدم هذا الكود لإعطاء إجمالى أعداد العناصر الموجودة فى المصفوفات أو الجداول .





    1- " SourceTable" هو إسم المصفوفة أو الجدول المراد معرفة عدد عناصرة الداخلية .

    2- "ResultVariable" هو إسم المتغير المراد حفظ نتيجة الكود فية حيث فى حالة وجود خطأ يكون الريتيرن المخزن فية هو 0 وفى حالة عدم وجود خطأ يكون إجمالى أعداد العناصر الموجودة فى المصفوفة المحددة هو الريتيرن .

    يمكن الإستعانة بدلا من هذا الكود بوضع العلامة المحجوزة فى البرنامج والتى تؤدى نفس وظيفة هذا الكود وهى علامة الشباك # .

    فإذا كان لدينا على سبيل المثال المصفوفة التالية :

    ; {"t={"abood","abohmam","azizsoft

    نريد معرفة عدد العناصر الموجود فى هذة المصفوفة يمكننا إستخدام الكود فيكون :

    ; (result = Table.Count(t

    ثم نستخدم أى وسيلة عرض لعرض النتيجة المخزنة فى المتغير result

    أو يمكننا الإستغناء عن إستخدام الكود بالكامل بإستخدام الكلمة أو العلامة المحجوزة " الشباك # " كالتالى :

    ; result = #t

    نعود ونذكر مصفوفة = جدول أى أى كود سيكون الريتيرن له جدول يمكننا معرفة عدد عناصرة أيضا بما سبق .



    Table.Insert

    يستخدم هذا الكود لإدخال عناصر أو إدراج عناصر إلى مصفوفة أو جدول فى أى ترتيب تريدة .





    1- "SourceTable" هو إسم المصفوفة المراد إدراج عناصر فيها .

    2- ""Position هو رقم الإندكس المراد الإدخال أو الإدراج فية .

    3- "Value" هو القيمة المراد إدخالها .


    كمثال على مصفوفة فارغة :
    كود PHP:
    --
    T={};
    Table.Insert(T1"abood"); 

    فى هذا المثال السابق تم بإستخدام الكود إدخال العنصر أو القيمة abood فى الإندكس الأول وهو رقم 1 داخل المصفوفة السابقة T .

    أيضا كان من الممكن الإدخال المباشر بالإستغناء عن الكود كالتالى :
    كود PHP:
    --
    T={};
    T[1] = "abood" 

    نلاحظ أننا بالعملية السابقة لم نستخدم الكود Table.Insert وقمنا بالإدخال المباشر للعنصر أو القيمة abood فى الإندكس الأول رقم 1 داخل المصفوفة T .



    Table.Remove


    يستخدم هذا الكود لحذف عنصر من عناصر المصفوفة أو الجدول بواسطة معرفة رقم الإندكس الذى يحتوية .





    1- "SourceTable" هو إسم المصفوفة المراد حذف عناصر منها .

    2- ""Position هو رقم الإندكس للعنصر المراد حذفه من المصفوفة .

    3- "ResultVariable" هو إسم المتغير المراد حفظ نتيجة الكود فية ويكون نتيجة الريتيرن التى تخزن فى هذا المتغير هو القيمة أو العنصر أو النص الذى تم حذفة من عناصر المصفوفة .




    Table.Sort




    يستخدم هذا الكود لترتيب أو فرز عناصر المصفوفة أو الجدول .






    1- "SourceTable" هو إسم المصفوفة المراد فرز أو ترتيب عناصرها .

    2- "Compare" هى إسم الوظيفة المراد تنفيذها أثناء عملية الترتيب أو الفرز
    وينبغى أن تحتوى هذه الوظيفة على عنصرين للمقارنة بينهما وترجع إحدى القيمتين البولينيتين إما true فى حالة فرز أو ترتيب القيمتين أو false فى حالة أن العناصر أو العنصرين فى حاجة إلى تبديل وكمثال على الوظيفة :


    كود PHP:
    --
    function 
    sorter(v1,v2)
    if (
    v1 v2)then    
    return true;
    else
    return 
    false;
    end
    end 


    فى الوظيفة السابقة يتم المقارنة بين العنصرين وفى حالة أن كان العنصر الأول أكبر من العنصر الثانى يكون الريتيرن للوظيفة هو القيمة البولينية true
    أما إذا كان غير ذلك "العنصر الأول أصغر من العنصر الثانى" يكون الريتيرن للوظيفة هو القيمة البولينية false .

    *** فى حالة عدم وضع إسم وظيفة وتركنا كلمة nil سوف يكون ترتيب عناصر المصفوفة هو ترتيب تصاعديا .


    مثال رقم 1 للترتيب تصاعديا :
    كود PHP:
    --
    Debug.ShowWindow(true);
    MyTable = {46,102,12,85};
    Table.Sort(MyTablenil)
    for 
    x,y in pairs(MyTable) do
    Debug.Print(y.."\r\n");
    end 


    فى هذا المثال نريد ترتيب عناصر المصفوفة MyTable ترتيبا تصاعديا أى من الرقم الأصغر إلى الرقم الأكبر لذلك لم نضع إسم للوظيفة المراد تنفيذها أثناء الترتيب وتركناها كما هى كلمة nil فتكون النتيجة للترتيب هى كالتالى :

    12
    46
    85
    102



    أما فى حالة نريد ترتيب مثلا مصفوفة ترتيبا تنازليا فعلينا صنع وظيفة كالتالى :


    كود PHP:
    --
    function 
    sorter(v1,v2)
    if (
    v1 v2)then
    return true;
    else
    return 
    false;
    end
    end 



    بعد صنع هذه الوظيفة نأخذ إسمها ونضعه بدلا من كلمة nil :


    كود PHP:
    --
    Debug.ShowWindow(true);
    MyTable = {46,102,12,85};
    Table.Sort(MyTablenil)
    for 
    x,y in pairs(MyTable) do
    Debug.Print(y.."\r\n");
    end 


    فيكون نتيجة ترتيب هذه المصفوفة هو ترتيبا تنازليا أى من الرقم الأكبر إلى الرقم الأصغر :


    102
    85
    46
    12




    *** ينطبق ما سبق أيضا على الحروف أو الكلمات .







    التعديل الأخير تم بواسطة عبود عبود; الساعة 17-02-2016, 12:16 AM. سبب آخر: تعديل لنقل صور الشرح على سيرفر مناسب وجيد للظهور بالشكل السليم

  • #2
    السلام عليكم ورحمة الله وبركاته
    زادك الله علما وزادنا فهما
    بارك الله في جهودك المثمرة
    موفق بإذن الله ... لك مني أجمل تحية .

    تعليق


    • #3
      بسم الله الرحمن الرحيم

      بارك الله فيكم استاذ عبود
      شروحات قيمة ونافعة
      ان شاء الله تكون المحصلة كتاب الكتروني رائع

      تعليق


      • #4
        جزاك الله خيرا اخانا عبود على هذا المجهود الطيب

        تعليق


        • #5
          جزاك الله خيرا أخى عبود

          ماشاء الله دروس مفيدة والشرح رائع

          بارك الله فيك وفى جهودك النافعة

          تعليق


          • #6
            بسم الله الرحمن الرحيم
            بارك الله فيك استاذ عبود
            علي هذا المجهود الرائع والكبير
            في توصيل المعلومة بهذا الشكل المسلسل البسيط
            لك كل الشكر والتقدير في انتظار درسك القادم

            تعليق


            • #7
              تحياتى لكم جميعا

              تعليق


              • #8
                شـكــ وبارك الله فيك ـــرا لك ... لك مني أجمل تحية .

                تعليق


                • #9
                  تمت مراجعة التحقق من ظهور صور الشرح بالشكل المناسب ونقل الصور على سيرفر آخر حفاظا على ظهورها بالشكل المناسب


                  17 \ 2 \ 2016

                  تحياتى

                  تعليق

                  مواضيع تهمك

                  تقليص

                  المنتدى: القسم العام نشرت بواسطة: Reem2Rabeh الوقت: 04-23-2025 الساعة 04:27 PM
                  المنتدى: ضبط وتوكيد الجودة نشرت بواسطة: HeaD Master الوقت: 04-15-2025 الساعة 09:30 AM
                  المنتدى: التصنيع والانتاج نشرت بواسطة: HeaD Master الوقت: 04-11-2025 الساعة 01:08 PM
                  المنتدى: القسم العام نشرت بواسطة: نوال الخطيب الوقت: 03-19-2025 الساعة 03:07 AM
                  المنتدى: الكمبيوتر والإنترنت نشرت بواسطة: عوض السوداني الوقت: 03-18-2025 الساعة 07:22 AM
                  يعمل...
                  X