الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

سؤال في المصفوفات

مغلق
بدأه goon في 2 مايو 2007 · 6 رد · 683 مشاهدة · في لغة Ms Visual Basic 6 وما قبلها من إصدارات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

عندي مصفوفة اسمها x كتبت هذا الكود

for i=lbound (x) to ubound(x)

if x(i)="goon" then prent "yes"

كيف أعرف كم جزء من المصفوفة يحتوي على "goon"

يعني إذا x(0)="goon" فقط يطبع عدد 1

سلام

#2

الأخ الفاضل ...

جرب الكود التالى:

	Dim x(10) As String
	Dim i As Integer
	Dim Counter As Integer

	Counter = 0
	For i = LBound(x) To UBound(x)
		If x(i) = "Goon" Then Counter = Counter + 1: Print "Yes"
	Next i

	Print Counter

شكراً

Eng. Usama El-Mokadem

Nothing is impossible, the word impossible itself says that: I M - Possible

#3

شكراً ولكني لا أستطيع تجربت الكود الآن

#4

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

اخي القصه تتلخص في بعد تعبئة المصفوفه يتم المرور على عناصره فأذا وجد عنصر فيها يحتوي على "....."" يتم أضافة رقم 1 على متغير لأيأتي لك في اخر الامر بعدد وجوده في المصفوفه

وذلكم عن طريق الكود التالي :

   Dim x(3) As String

   x(0) = "xxxx"
   x(1) = "Goon"
   x(2) = "Goon"
   x(3) = "Goon"

	Dim i As Integer
	Dim Counter As Integer

	Counter = 0
	For i = LBound(x) To UBound(x)
		If x(i) = "Goon" Then Counter = Counter + 1
	Next i

	MsgBox Counter

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

ضع هذا في الـ General

 Option Compare Text

بالتوفيق ..........

A7med_prof

اقتباس

آسف الدخول متقطع هذه القتره

اقتباس

[يمين]

.[/يمين]

A7med_prof-4-2007.jpg

اخر مواضيعي 2007

االمثال مطبق على موقع بورصه سعودي

.

.

مواضيع مهمه ومطلوبه بكثره VB6

.

بــرامج ومشــاريع عربيه كامــله {HnHn} والمزيد في قسم برامج الاعضاء || ربط قواعد بيانات اكسس مع الفيجوال بيسك, مادة دراسية كاملة {بنت اليمن}|| المرجع الشامل لجمل SQL ا {GENIUS-IT} || كيفية التعامل مع مكتبة الـ DAO, في الوصول إلى قاعدة بيانات {رمضان} || مثال ريط Visaul Basic 6.0 مع SQL SERVER ا || العمليات التي تجرى على قاعدة البيانات, مثال كامل {بنت اليمن} || تصدير البيانات من الاكسل الي الاكسس بالفيجوال بيسك {HnHn} || البحث في قاعدة البيانات {MANSUR} || قواعد البيانات العلائقية وتقنيات الوصول إليها {عبد الله فتحي} || كيفية أظهار بيانات جدولين بواسطة التاريخ ,,,,,,,

.

أخي ربما سؤالك اجابته في أحدى هذه المواضيع فإن لم تجد قم بالبحث وان لم تجد اطرح سؤالك مع وضع عنوان مناسب بحيث ان يكون هذا العنوان دال على محتوى الموضوع فغير ذلك من أكبر الكبائر في المنتدى وسيؤدي الى غلق او حذف موضوعك .

.

</
#5
Eng. Usama El-Mokadem كتب:
الأخ الفاضل ...

جرب الكود التالى:

	Dim x(10) As String
	Dim i As Integer
	Dim Counter As Integer

	Counter = 0
	For i = LBound(x) To UBound(x)
		If x(i) = "Goon" Then Counter = Counter + 1: Print "Yes"
	Next i

	Print Counter

شكراً

الأخ الفاضل ...

مع تقديرى للأخ A7med_prof، الا أن استخدام

Option Compare Text

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

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

	Dim x(10) As String
	Dim i As Integer
	Dim Counter As Integer

	x(2) = "Goon"
	x(4) = "GOON"
	x(7) = "goon"
	x(8) = "gOOn"

	Counter = 0
	For i = LBound(x) To UBound(x)
		If UCase(x(i)) = "GOON" Then Counter = Counter + 1
	Next i

	Print Counter
'   MsgBox Counter

اقتباس
if x(i)="goon" then prent "yes"
اقتباس
يعني إذا x(0)="goon" فقط يطبع عدد 1

كذلك هناك نقطة أخرى ... بالنسبة لأستخدام Print، فهى تصلح للإستخدام فى Basic ولكنها غير مناسبة بالنسبة VB ، فإذا كنت تستخدم Basic فلن تصلح معك الدالة MsgBox فهى تعمل فى VB فقط

نقطة أخرى ، إذا كنت تعمل على على Basic وليس VB ، فلتعريف المتغير ضع فقط Dim واسم المتغير [Dim i]

شكراً

Eng. Usama El-Mokadem

Nothing is impossible, the word impossible itself says that: I M - Possible

#6

السلام عليكم

أنا من زمان ما بينت بسبب خلل في جهازي والفجوال بيسك راح من جهازي و أنا نسيت الكثير من ما تعلمته بالبرمجة

وأنا استخدمت طريقة العداد وكنت عارفها|| ولكنني ساويت دالة بطريقة أخرى :

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

ولكن على ما أذكر أنني نقلت أمر إيجاد عدد القيم إلى مكان set focus للستبوكس بعد ما أن وضعت أمر في الدالة يقوم بوضع التركيز على اللستبوكس

لأنه على ما أذكر يجب انهاء كود اضافة المجموعة إلى اللست بوكس ثم جعل اللستبوكس توجد عدد قيمها (ربما بسبب قراءة المترجم للكود بطريقة تكرارية على ما أظن)

آسف لأني لم أضع الكود لأني ناسي كيف أكتبه حتى ناسي أبدأ ب sub ولا function

وشكراًًًًًًًً

تم تعديل هذه المشاركة بواسطة goon في 20 يونيو 2007 في 22:59

#7

السلام،

في طريقة جيدة لعرض المعلامات بدل MsgBox وقلقها كل شوي تحط موافق ولا يعطيك السرعة الحقيقة لتنفيذ الكود،

استبدلها بي Debug.print وتظهر النتائج في شاشية الــــ Immediate (ويمكن الوصل لها عن طريق Ctrl+G). وهي تقوم بدور Print الي في Basic.

ملاحظة: من خلال نفس الشاشة يمكن تنفيذ أي دالة دون الحاجة لكتابة كود كامل، مريحة في عملية Testing :lol:

أخوكم/ فراس

تم تعديل هذه المشاركة بواسطة Feras Nasser في 20 يونيو 2007 في 23:06

سبحان الله وبحمده عدد خلقه ورضا نفسه وزنة عرشه ومداد كلماته

هذا الموضوع مغلق.

مواضيع مشابهة