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

كيف اجد عدد مرات تكرار اسم في حقل معين

مغلق
بدأه المثابر في 4 يونيو 2002 · 11 رد · 1,101 مشاهدة · في لغة Ms Visual Basic 6 وما قبلها من إصدارات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

مثلا لدي حقل الاسم( فيه اسماء معينة ومكررة )اريد ان اعرف كم مرة تكرر الاسم احمد مثلا.

مع الشكر الجزيل

#2

اخي العزيز هل المطلوب أن تحدد عدد تكرار اسم محدد في صندوق النص Text Box

#3

اخي العزيز.

نعم..لنفرض انني وضعت الاسم في تكست بوكس واريد ان اعرف عدد مرات تكراره في الحقل name مثلا

مع خالص الشكر

#4

بسم الله الرحمن الرحيم

آسف للتأخر

ضع ثلاثة صناديق نص Text Box

ضع زر أمر Command Button

ضع الكود الاتي تحت زر الأمر

 For a = 1 To Len(Text2)
M = Mid(Text2, a, Len(Text1))
If M = Text1 Then
x = x + 1
End If
Next
Text3 = x

في الـ text1 أكتب الاسم الذي تريد معرفة عدد مرات تكراره

في الـ text2 أكتب الاسم الطويل

في الـ text3 تعرض لك النتيجة

آمل أن يكون هذا هو المطلوب أخي العزيز

أخوك

#5

ياريت مثال اخ منصور

تحياتى.....

#6

اخي العزيز : الرد السابق لي هو عبارة عن مثال جاهز فقط انقله للـ VB بعد وضع الازرار وصناديق النص

(light)

#7

مرحباً..

أولاً وقبل كل شئ.. الحل فى الأعلى أفضل لأنه أقل أستهلاكاً للذاكرة..

فقط وضعت هذه الطريقة لأنها تعطى أمثلة جيدة لأستخدام الدلة InStr وبعض الطرق البرمجية الأخرى

لذلك فأرجو من الجميع قرأتها من باب العلم بالشئ.. :)

تفضل :

Dim sString As String

Dim sWanted As String

Dim sArray() As String

Dim iCounter As Integer

Dim iPos As Integer

Dim Found As Integer



sString = "ArabTeam2000 is an Arabian Site In Arabic Made For Arabian Programmers and Users.."

sWanted = "Arab"



sArray = Split(sString)



For iCounter = LBound(sArray) To UBound(sArray)

    iPos = InStr(1, sArray(iCounter), sWanted)

    If iPos Then

        Found = Found + 1

        Do Until iPos = 0

            iPos = InStr(iPos + Len(sWanted), sArray(iCounter), sWanted)

            If iPos Then

                Found = Found + 1

            End If

        Loop

    End If

Next iCounter



MsgBox Found

حسناً سوف أقوم بشرح بسيط..

أقوم من خلال الدلة Split بتقسيم الجملة الى كلمات ووضع الناتج فى مصفوفة نصية

بحيث sArray(1) تحتوى على أول كلمة بينما sArray(2) تحتوى على ثانى كلمة... وهكذا

هناك دالة اسمها InStr وهى تقوم باختبار وجود نص معين فى نص أخر.. يعنى مثلاً وجود كلمة " العرب " فى " المؤتمر العربى السادس عشر"

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

لكنها وفى نفس الوقت لا تحدد لك عدد مرات التواجد.. :confused:

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

الدالتان LBound و UBound المستخدمتان فى الحلقة For وظيفتهما إيجاد بداية ونهاية المصفوفة.. (مما يحدد عدد الكلمات الموجودة فى االجملة)

__________________________________________________

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

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

__________________________________________________

Chaos

#8

اخي العزيز منصور

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

مع خالص الشكر

#9

انا سألتك :

اخي العزيز هل المطلوب أن تحدد عدد تكرار اسم محدد في صندوق النص Text Boxاخي العزيز.

فقلت :

نعم..لنفرض انني وضعت الاسم في تكست بوكس واريد ان اعرف عدد مرات تكراره في الحقل name مثلا

مع خالص الشكر

لكن على العموم ... من الطبيعي انك تستعرض كل حقل من قاعدة البيانات في text box .. فقم بتنفيذ الكود السابق على الـ Text Box

#10

اخي العزيز...

انا اسف فعلا لانني لم اوضح جيدا..ولكن اذا عملت ما ذكرت لي فلن استطيع ايجاد عدد تكرار الاسم في الحقل لان التكست سوف يعرض لي

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

ولك مني خالص الشكر والتقدير

#11

السلام عليكم:

إليك العبارة:

strSQL="SELECT COUNT(fieldName) WHERE fieldName='أحمد'"
#12

اخي الفاضل

الف شكر لك هذا ما كنت اطلبه وشكر لكافة الاخوة الذين شاركونا.

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

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

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…