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

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

سلسلة شروحات الأكشن سكريبت رقم 4 المصفوفات جزء ثالث والتعامل مع أكواد Table

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

  • سلسلة شروحات الأكشن سكريبت رقم 4 المصفوفات جزء ثالث والتعامل مع أكواد Table






    نبدأ مع كيفية تفكيك المصفوفات



    شرحنا سابقا كيفية بناء المصفوفات و اليوم نلقى نظرة على تفكيك المصفوفة من عناصرها وهنا سوف نقسمها إلى قسمين أو نوعين لآداء تلك المهمة :


    أولا : بواسطة الكلمة المحجوزة للبرنامج والتى تعبر عن وظيفة و إسم هذة الكلمة فى اللوا هى unpack
    وباللغة العربية تنطق أن باك



    مثال للتوضيح لدينا مصفوفة مكونة من 4 عناصر مثل المصفوفة التالية :


    كود PHP:
    {"abood", "Haitham", "aziz", "khaled"

    نريد تفكيك هذة المصفوفة السابقة من عناصرها وذلك بغرض عرض العناصر كل على حدى فيكون كالآتى :


    كود PHP:
    unpack  ({"abood", "Haitham", "aziz", "khaled"} ) 

    هنا سوف يكون ناتج تفكيك المصفوفة كالتالى :


    abood , Haitham , aziz , khaled


    مثال تطبيقى :

    كود PHP:
    unpack ({"abood""Haitham""aziz""khaled"})
    Dialog.Message("Notice"fMB_OKMB_ICONINFORMATIONMB_DEFBUTTON1); 

    هنا سوف يكون ناتج التفكيك فى المتغير الإفتراضى المسمى بـــ   f  هو abood فلماذا ؟


    نعود بمثال بسيط للتوضيح إذا كان :

    كود PHP:

    فهذا واضح جدا أن الــ تى = 1


    نعود بمثال آخر إذا كان :


    كود PHP:
    "abood""abohmam" 

    أيضا سوف يكون الناتج المخزن فى الــ  t هو abood

     من التوضيحات السابقة نجد أن لتساوى طرفين أحدهما يعبر عنه بالمتغير أو المتغيرات و الآخر هو القيمة أو القيم يتم وضع عدد من المتغيرات و عدد من القيم
    فيكون المتغير الأول يساوى القيمة الأولى أو بمعنى المتغير الأول معبر عنة بالقيمة الأولى
    ولا يخفى علينا معنى كلمة المتغير فقد وضحناها فى الشروحات السابقة
    وطبعا القراءة من اليسار إلى اليمين بالنسبة للأكواد
    إذن فى المثال السابق نجد أن القيمة abohmam لايوجد متغير معبر عنة
    أما القيمة abood فقد كان المتغير  t معبرا عنة



    إذا كان عدد القيم أكبر من عدد المتغيرات فإن القيم يتم إهمالها لعدم وجود متغير يكون معبرا عنها


    نعود بمثال لآخر إذا كان :


    كود PHP:
    "abood" "abohmam" 

    إذن الــــ  t يساوى  abood
    و إذن الــــ  s يساوى  abohmam



    نعود بمثال لآخر إذا كان :


    كود PHP:
     t "abood" "abohmam" 

    إذن الــــ  t يساوى  abood
    و إذن الــــ  s يساوى  abohmam
    و إذن الــــ  v يساوى  nil



    إذا كان عدد المتغيرات أكبر من عدد القيم فإن المتغير الذى لا يوجد قيمة لة يكون قيمتة  nil



    عذرا للإطالة فقد كانت للتوضيح فنعود مرة أخرى إلى الكود الذى كان :


    كود PHP:
    unpack ({"abood""Haitham""aziz""khaled"})
    Dialog.Message("Notice"fMB_OKMB_ICONINFORMATIONMB_DEFBUTTON1); 


    ذكرنا سابقا أن كلمة unpack هى تعليمة برمجية محجوزة و تعمل على تفكيك المصفوفات
    وعلى ضوء توضيحاتنا فى الأعلى فإن نتيجة تفكيك المصفوفة السابقة يخزن فى المتغير  f فقط التفكيك الأول للمصفوفة وهو القيمة  abood
    وذلك لأنة المتغير الأول
    لذلك لتخزين القيم الباقية يجب وضع متغيرات لها أو بمعنى إضافة متغيرات مع المتغير  f


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


    كود PHP:
    unpack ({"abood""Haitham""aziz""khaled"})
    Dialog.Message("Notice"fMB_OKMB_ICONINFORMATIONMB_DEFBUTTON1);
    Dialog.Message("Notice"bMB_OKMB_ICONINFORMATIONMB_DEFBUTTON1);
    Dialog.Message("Notice"dMB_OKMB_ICONINFORMATIONMB_DEFBUTTON1);
    Dialog.Message("Notice"yMB_OKMB_ICONINFORMATIONMB_DEFBUTTON1); 

    عند عمل معاينة للكود السابق من خلال 4 رسائل توضيحية فيكون :

    f يساوى  abood
    b يساوى Haitham
    d يساوى  aziz
    y يساوى khaled

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




     ثانيا : بواسطة الكود المخصص للتعامل مع المصفوفات والمدمج فى أكواد البرنامج ضمن مجموعة تسمى Table


    هذا الكود هو : Table.Concat


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

    SourceTable وهو إسم المصفوفة أو المتغير المعبر عن المصفوفة أو الجدول
    Separator   وهو المحدد الذى يتم إختيارة لفصل القيم الموجودة فى الجدول
    Start وهو القيمة التى يراد البدأ عندها فى الجدول بمعنى الرقم
    End وهو القيمة التى يراد الإنتهاء عندها فى الجدول بمعنى الرقم فإذا كان المراد هو الإنتهاء عند آخر قيمة فى الجدول فيمكن إستخدام 1 -
    أو يمكن إستخدام المتغير المحجوز و المعبر عن كل القيم المدرجة بالجدول TABLE_ALL


    إذن عندما نأخذ مثال تطبيقى على هذا الكود كما يلى :


    كود PHP:
    = {"abood" "Haitham" "aziz" "khaled"}

    result Table.Concat(t";"1, -1);
    Dialog.Message("Notice"resultMB_OKMB_ICONINFORMATIONMB_DEFBUTTON1); 

    كما هو موضح بالكود أعلاة فإن لدينا جدول أو مصفوفة إسمها t
    وتم إستخدام Table.Concat وذلك للحصول على العناصر أو القيم المدرجة فى الجدول أو المصفوفة السابقة وتم إستخدام متغير إفتراضى إسمة result
    بغرض تخزين النتيجة بة
    ونجد أننا إستخدمنا الفاصلة المنقوطة وذلك بغرض الفصل بين كل عنصر فى المصفوفة أو الجدول
    أيضا نجد أننا إستخدمنا رقم 1 وذلك للبدأ من العنصر أو القيمة رقم 1 فى المصفوفة أو الجدول
    أيضا نجد أنا إستخدمنا رقم 1- وذلك للتعبير عن القيمة أو الإندكس المراد التوقف عندة وهو فى هذة الحالة سوف يكون آخر قيمة موجودة فى الجدول أو المصفوفة
    أو كان ممكنا أن نعوض عن ذلك بالمتغير المحجوز وهو TABLE_ALL



    هنا سوف تظهر الرسالة بالعناصر كما يلى :


    abood;Haitham;aziz;khaled





    مجموعة أكواد التعامل مع المصفوفات أو الجداول



    إستعراض لمجموعة أكواد أو وظائف التعامل مع المصفوفات أو الجداول فكلا التعبيري صحيح كما بالصورة التالية :





    أولا : Table.Concat


    فى أعلى الشرح وضحنا كيفية التعامل بإستخدام الكود أو الوظيفة Table.Concat






    ثانيا : Table.Count



    تعمل هذة الوظيفة على معرفة عدد العناصر الموجودة فى الجدول
    ويحتوى هذا الكود على 1 بارامترات Parameters وهو :

    SourceTable وهو إسم المصفوفة أو المتغير المعبر عن المصفوفة أو الجدول


    إذن عندما نأخذ مثال تطبيقى على هذا الكود كما يلى :


    كود PHP:
    = {"abood" "Haitham" "aziz" "khaled"}

    result Table.Count(t);
    Dialog.Message("Notice"resultMB_OKMB_ICONINFORMATIONMB_DEFBUTTON1); 


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


    هنا ستعرض لنا الرسالة التى تظهر عدد عناصر الجدول t والذى سوف يكون 4





    ثالثا : Table.Insert



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


    كود PHP:
    = {} 

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

    ويحتوى هذا الكود أو الوظيفة على 3 بارامترات Parameters وهم :

    SourceTable وهو إسم المصفوفة أو المتغير المعبر عن المصفوفة أو الجدول
    Position   وهو المكان أو المفتاح أو رقم الإندكس أو الترتيب المراد الإدخال إلية فى المصفوفة
    Value وهو العنصر أو القيمة المراد إدخالها فى الجدول



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


    كود PHP:
    = {"abood" "Haitham" "aziz" "khaled"}
    Table.Insert(t4"أبو يوسف"); 

    هنا فى الكود السابق قمنا بإدخال عنصر أو قيمة جديدة "أبو يوسف" فى الترتيب الرابع فى المصفوفة t
    إذن سوف يصبح شكل المصفوفة النهائى كالتالى بعد إدخال العنصر الجديد لها :


    كود PHP:
    = {"abood" "Haitham" "aziz" "أبو يوسف" "khaled"





    رابعا : Table.Remove


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

    ويحتوى هذا الكود أو الوظيفة على 2 بارامترات Parameters وهم :

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



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


    كود PHP:
    = {"abood" "Haitham" "aziz" "أبو يوسف" "khaled"}
    Table.Remove(t1); 

    فى المثال الموضح أعلاة قمنا بحذف العنصر رقم 1 كترتيب فى المصفوفة أو الجدول t
    وبالتالى فقد تم حذف abood من المصفوفة t

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


    كود PHP:
    = {"Haitham" "aziz" "أبو يوسف" "khaled"





    خامسا : Table.Sort



    تستخدم هذة الوظيفة بغرض ترتيب العناصر داخل المصفوفة إما ترتيبا رقميا أو أبجديا وتصاعديا أو تنازليا

    ويحتوى هذا الكود أو الوظيفة على 2 بارامترات Parameters وهم :

    SourceTable وهو إسم المصفوفة أو المتغير المعبر عن المصفوفة أو الجدول
    Compare   وهى وظيفة مقارنة بين آرجين أو بارامترين و من ثم إعادة قيمة بولينية لهذة الوظيفة فى حالة تحقق الشرط أو عدم تحقق الشرط
    وهذة المقارنة تتم بواسطة أو عن طريق إستخدام علامة أكبر من أو علامة أصغر من
    ومثال لهذة الوظيفة مع إمكانية تغيير علامة أكبر من إلى علامة أصغر من فى عملية المقارنة وذلك طبقا للترتيب المراد تصاعديا أو تنازليا :


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


    فى حالة إستخدام علامة < سوف يكون الترتيب تنازليا


    فى حالة إستخدام علامة > سوف يكون الترتيب تصاعديا



    إذن عندما نأخذ مثال تطبيقى على ترتيب عناصر جدول كما يلى :


    كود PHP:
    function sorter(v1,v2)
        if (v1 v2)then
            return true
    ;
        else
            return false
    ;
        end
    end
    = {"Abood" "Haitham" "Aziz" "Khaled"}
    Table.Sort(tsorter); 


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

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







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



    أكتفى بهذا القدر البسيط و أتمنى أن يكون مفيـــــــــــــــد


    يمكن تحميــل الشرح من المرفقات فقد تم تحويلة إلى كتـاب بى دى إف





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

  • #2
    جزاك الله خيرا
    ووفقك الى مايحب ويرضى
    وبارك في أعمالك الطيبة
    شكرا لك

    تعليق


    • #3
      :teslam:

      جزاك الله خيرا أخى أمير

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

      بارك في جهودك المولى

      تعليق


      • #4
        بارك الله فيك اخانا عبود على هذه الهمة والمتابعة

        .

        تعليق


        • #5
          Thaaanks A Loot !!

          تعليق


          • #6
            نتمنى لكم الإستفادة إن شاء الله

            تعليق


            • #7
              ابدعت ياملك

              تعليق


              • #8

                تعليق


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

                  تعليق


                  • #10
                    سلسلة شروحات الأكشن سكريبت رقم 4 المصفوفات جزء ثالث والتعامل مع أكواد Table

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

                    تعليق


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

                      تعليق


                      • #12
                        تم عمل تحديث لوضع صور الشرح على سيرفر آخر حفاظا على ظهورها بالشكل المناسب

                        17 \ 2 \ 2016

                        تحياتى

                        تعليق


                        • #13
                          شكرررررررررررراااااااااا

                          تعليق


                          • #14
                            مشكوووووووووووووووووووووو وور

                            تعليق


                            • #15
                              مشكر اخى بارك الله فيك

                              تعليق

                              مواضيع تهمك

                              تقليص

                              المنتدى: القسم العام نشرت بواسطة: 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