

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

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

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


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

1- "SourceTable" هو إسم المصفوفة أو الجدول المراد عرض محتوياته نصيا تسلسليا .
2- "Separator" هو العلامة الفاصلة المراد وضعها بين كل قيمة من قيم الجدول والأخرى التى تليها .
3- "Start" هو رقم الإندكس من الجدول المراد البدأ منه .
4- "End" هو رقم الإندكس من الجدول المراد الإنتهاء عنده أو الوقوف عنده أو التوقف عنده ويمكن التعبير عن آخر إندكس بالرقم 1- أو بــ TABLE_ALL .
5- " ResultVariable " هو المتغير المراد حفظ النتيجة والتى ستكون نصية فية
هذه النتيجة عبارة عن كل قيمة متبوعة بالفاصلة التى إخترناها .

فكان الكود كالتالى :
كود PHP:
--
result = TextFile.ReadToTable("AutoPlay\\Scripts\\Scintilla.lua");
result2 = Table.Concat(result, ";", 5, 10);
Input.SetText("Input1", result2);
فى الكود السابق تم قراءة محتويات ملف نصى قراءة جدولية وتخزينها فى متغير ومن ثم تم سلسلة محتويات الجدول إبتداءا من الإندكس رقم 5 وإنتهاءا عند الإندكس رقم 10 ووضع فاصلة منقوطة بين كل إندكس وآخر مما تم تحديدة ليظهر على شكل نصى فى المحتوى الأخير فى وسيلة العرض الإينبوت على سبيل المثال .

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

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


; {"t={"abood","abohmam","azizsoft
نريد معرفة عدد العناصر الموجود فى هذة المصفوفة يمكننا إستخدام الكود فيكون :
; (result = Table.Count(t
ثم نستخدم أى وسيلة عرض لعرض النتيجة المخزنة فى المتغير result
أو يمكننا الإستغناء عن إستخدام الكود بالكامل بإستخدام الكلمة أو العلامة المحجوزة " الشباك # " كالتالى :
; result = #t
نعود ونذكر مصفوفة = جدول أى أى كود سيكون الريتيرن له جدول يمكننا معرفة عدد عناصرة أيضا بما سبق .
; (result = Table.Count(t
ثم نستخدم أى وسيلة عرض لعرض النتيجة المخزنة فى المتغير result
أو يمكننا الإستغناء عن إستخدام الكود بالكامل بإستخدام الكلمة أو العلامة المحجوزة " الشباك # " كالتالى :
; result = #t
نعود ونذكر مصفوفة = جدول أى أى كود سيكون الريتيرن له جدول يمكننا معرفة عدد عناصرة أيضا بما سبق .

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

1- "SourceTable" هو إسم المصفوفة المراد إدراج عناصر فيها .
2- ""Position هو رقم الإندكس المراد الإدخال أو الإدراج فية .
3- "Value" هو القيمة المراد إدخالها .
كمثال على مصفوفة فارغة :
كود PHP:
--
T={};
Table.Insert(T, 1, "abood");


كود PHP:
--
T={};
T[1] = "abood" ;


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

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

مثال رقم 1 للترتيب تصاعديا :
كود PHP:
--
Debug.ShowWindow(true);
MyTable = {46,102,12,85};
Table.Sort(MyTable, nil)
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

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

102
85
46
12



تعليق