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

+- delphi4arab منتديات دلفي للعرب (https://delphi4arab.net/forum)
+-- قسم : منتديات دلفي للعرب التعليمية (https://delphi4arab.net/forum/forumdisplay.php?fid=3)
+--- قسم : سؤال و جواب حول دلفي (https://delphi4arab.net/forum/forumdisplay.php?fid=15)
+--- الموضوع : كيف تعريف مصفوفة حجمها لا يعرف الا بعد التنفيذ (/showthread.php?tid=2854)



كيف تعريف مصفوفة حجمها لا يعرف الا بعد التنفيذ - rose - 03-03-2011

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


كيف تعريف مصفوفة حجمها لا يعرف الا بعد التنفيذ - hanipino - 03-03-2011

و عليكم السلام

تعريف مصفوفة مجهول حجمها
كود :
var S: array of array of string;

اعطاء حجما لها
كود :
SetLength(S, 5); // المصفوفة ككل تحتوى على خمسة اسطر SetLength(S[0], 3); // السطر الاول يحتوى على ثلاث اعمدة

تحريرها ان صح التعبير
كود :
SetLength(S, 0);

يوجد درس حول التعامل مع المصفوفات فى دورة دالفى للعرب .


كيف تعريف مصفوفة حجمها لا يعرف الا بعد التنفيذ - Amer12 - 24-11-2013

أو للمصفوفة المربعة
PHP كود :
setlength(A,2,3) 
أي المصفوفة A تتكون من صفين و ثلاثة أعمدة وذلك يوافق التعريف التالي
كود :
A:array [0..1,0..2] of integer
دليل المصفوفة الديناميكية دائما يبدأ بصفر.

لتحرير المصفوفة من الذاكرة اسند لمتغير المصفوفة قيمة nil التي تعني لا شيء
لأن اسم المصفوفة هو في الواقع مؤشر يؤشر إلى أول موقع في المصفوفة.
PHP كود :
A := nil 
أو استعمل الاجراء Finalize
PHP كود :
finalize(A); 

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

ملاحظة: المصفوفة لن يتم تحريرها من الذاكرة اذا كان هناك متغير آخر يؤشر إليها.