التنبيهات التالية ظهرت :
Warning [2] count(): Parameter must be an array or an object that implements Countable - Line: 864 - File: showthread.php PHP 7.4.33 (Linux)
File Line Function
/showthread.php 864 errorHandler->error



تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
المصفوفة array في لغة الفيجوال بيسسك - vb6
#1
بسم الله الرحمن الرحيم..

السلام عليكم ورحمة الله وبركاته..


سأتكلم في هذا الموضوع عن المصفوفة (array).. أحادية البعد..
وهناك جزء آخر بإذن الله للمستويات المتقدمة لهذه المصفوفة..

يندر الكلام عن (array) في المنتديات العربية إن لم يكن معدوماً بالنسبة للـ VB6..
وأعتذر لأخي (<br>) على التأخير.. لأني فعلاً مشغول بالعمل وخارج العمل..

هذا الموضوع هو إهداء لأخي العزيز (السندباد) وأخي العزيز (<br>) << الذي طلب شرح للصمفوفة..

نبدأ بالدرس..


- نبذة عن المصفوفة :

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


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

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




والكود هكذا..
[b]
كود PHP:
[b]dim a as string
dim b
as string
dim c
as string
dim d
as string
dim e
as string
dim f
as string
dim g
as integer
dim h
as integer
dim i
as integer
dim j
as integer
dim k
as integer

a
= "السعودية"
b = "مصر"
c = "سوريا"
d = "الكويت"
e = "اليمن"
f = "مليون نسمة "
g = "30"
h = "100"
i = "23"
j = "1"
k = "20"

text1.text = a & vbnewline & b & vbnewline & c & vbnewline & d & vbnewline & e
text2
.text = g & f & vbnewline & h & f & vbnewline & i & f & vbnewline & j & f & vbnewline & k & f
[/b]



أخذت خمس دول كمثال فقط..
ما تلاحظ أن الكود كبير شوي.. هذي خمس دول كيف بباقي الدول العربية الأخرى..؟!
طيب وش رايك نختصر الكود بإدخال المصفوفة (array) عليه..؟؟ أوكي راح نختصره..


- هذه طريقة الإعلان عن متغير يقبل دخول المصفوفة (array) عليه..

[b]
كود PHP:
[b]Dim a As Variant
[/b]



ركزعلى نوع المتغير (Variant).. هذا النوع يسمح للمصفوفة بالدخول على المتغيرات.. لكي يحمل المتغير أكثر من قيمة..

وسنفرق بين كل قيمة وقيمة بالفهرس..
بعد الإعلان نأتي بالمتغير.. ثم علامة (=) ثم اسم المصفوفة اللي هي (array) ثم قوسين نضع فيها قيم المصفوفة.. ونفصل بين كل قيمة وأخرى بفاصلة (,)..

راح يصير المتغير وقيمه هكذا..


[b]
كود PHP:
[b]Dim a As Variant
a
= Array("السعودية", 30, "مصر", 100, "سوريا", "23", "الكويت", 1, "اليمن", 20, " مليون نسمة")
[/b]



الآن أدخلنا المصفوفة (array) على القيم وأريد أن أطبع قيمة محددة من المصفوفة.. كيف..؟
عليك أن تعرف أولاً ما الذي فعلته المصفوفة بتلك القيم..

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

بهذه الصورة :



وعندما تريد قيمة محددة عليك أن تكتب اسم المتغير اللي هو (a).. ثم قوسين ().. وتضع بينهما رقم الفهرس..

- مثلاً أريد طباعة كلمة (السعودية) في مربع نص.. هكذا :


[b]
كود PHP:
[b]Text1.Text = a(0)
[/b]



وهذا الكود النهائي للبرنامج كامل لمثالنا السابق..

[b]
كود PHP:
[b]Dim a As Variant
a
= Array("السعودية", 30, "مصر", 100, "سوريا", "23", "الكويت", 1, "اليمن", 20, " مليون نسمة")
Text1 = a(0) & vbNewLine & a(2) & vbNewLine & a(4) & vbNewLine & a(6) &
vbNewLine & a(8)
Text2 = a(1) & a(10) & vbNewLine & a(3) & a(10) & vbNewLine & a(5) & a(10) &
vbNewLine & a(7) & a(10) & vbNewLine & a(9) & a(10)
[/b]



وبعد الاختصار النتيجة نفس نتيجة البرنامج السابق.. شوف الصورة..



وإذا بغيت إختصار وتنظيم أكثر.. ما عليك إلا إنك تشغل مخك.. وخذ هذا الاختصار الثاني..

[b]
كود PHP:
[b]Dim a As Variant
a
= Array("السعودية", 30, "مصر", 100, "سوريا", "23", "الكويت", 1, "اليمن", 20, " مليون نسمة")
For
i = 0 To 8 Step 2
Text1
= Text1 & a(i) & vbNewLine
Next
For y = 1 To 9 Step 2
Text2
= Text2 & a(y) & a(10) & vbNewLine
Next
[/b]

[/b][/b][/b][/b][/b][/b]
[b][b][b][b][b][b]

والنتيجة طبعاً نفس النتيجة..


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

وأيضاً أريدك أن تلاحظ شيئاً مهماً في قيم هذه المصفوفة.. وهي :
إذا كانت قيمة المصفوفة من نوع نص (String).. فلابد من وضع القيمة بين علامتي تنصيص ("")..
وإذا كانت قيمة المصفوفة من نوع أرقام (Integer).. أو أي نوع من الأرقام.. فإن الأمر لا يضر..
سواء وضعناها بين علامتي تنصيص أم لم نضعها الأمر لا يفرق.. ولو تلاحظ في المثال اللي عطيتك..
قيم المصفوفة الرقمية كلها خالية من علامات التنصيص.. ما عدا قيمة عدد سكان سوريا وضعتها بين علامتي تنصيص.. لتعرف أن الأمر لا يفرق في القيم الرقمية..

وبما أن الكلام يندر عن (array).. والفرصة سمحت لي بالكلام عنها..
فسيكون هناك جزء آخر للمصفوفة (array).. سأوضح فيه كيفية عمل المصفوفة ثنائية البعد.. ومتعددة الأبعاد..
وسأقوم بتوضيح بعض المفاهيم الخاطئة بالنسبة للمصفوفة في المنتديات العربية والتي أخطأ فيها الكثير حتى من محترفي البرمجة بالـ VB6..

وإذا سمحت لي الفرصة أكثر فسأتكلم عن المصفوفة (array).. في لغة PHP ولغة PERL..

والتوفيق حليف الجميع إن شاء الله..




بقلم : مزيد..مرير - أبو ربيع
[/b][/b][/b][/b][/b][/b]
الرد }}}
تم الشكر بواسطة:


الردود في هذا الموضوع
المصفوفة array في لغة الفيجوال بيسسك - vb6 - بواسطة مزيد مرير - 19-02-13, 02:51 PM

المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  استخدام أداة التقارير DataReport من خلال الفيجوال بيسك 6.0 RaggiTech 0 7,999 14-10-12, 02:21 PM
آخر رد: RaggiTech
  للمبتدئين - كيفية عمل Setup بالبرنامج المرفق مع الفيجوال بيسك RaggiTech 0 8,304 14-10-12, 02:00 PM
آخر رد: RaggiTech

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم