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

مشكلة في البحث في RichTextBox

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

مشكلة في البحث في RichTextBox وهي عندما يتم البحث فيها عن كلمة ذلك ويكون في RichTextBox كلمة ذلك مشكلة ذَلِكَ يتم تحديد ذل وتترك الكاف بحكم ان الفتحة والكسرة اعتبرا كحرف فكيف اجعل التحديد يتم الكلمة كاملة

#2

السلام عليكم

حسن أخي

يجب العمل مع هذه المشكلة

إذا النص مشكولا كاملا وانت متأكد أنه مشكول كاملا فالامر سهل جدا

هذا قد يفي بالغرض

Dim FindPlace As Integer
Dim FindThat As String
FindThat = "ذلك"
FindPlace = InStr(1, RichTextBox1.Text, FindThat)
RichTextBox1.SetFocus
RichTextBox1.SelStart = FindPlace
RichTextBox1.SelLength = Len(FindThat) * 2

أما اذا لم يكن فلا بد من التلاعب بالنص أو البحث عن الكلمة حرفا حرفا

يعني البحث عن الحرف الاول ومن تم البحث عن الحرف الذي يليه والذي لا يكون

حرف شكل فتحة أو كسرة

أو

البحث عن الحرف الاول من الكلمة والحرف الاخير منها

وبعد ذلك تأخد الكلمة وتحذف حروف الشكل والتأكد من أنها الكلمة المرادة وإن لم تكن تذهب الى البحث انطلاقا من

المكان الذي وجد فيه الحرف أول مرة وهكذا آمل أن تحاول التعامل والتلاعب بالكود بهذا الشكل وآمل أن تجد الحل

وسأحاول أن أكتبه لك

إن شاء الله

حاول جرب توصل

#3

أولا أود أن أشكرك أخي العزيز الفاضل على ردك واهتمامك ...

ثم إن فكرتك جميلة ،،، ،،،

ولكن النص الموجود في RichTextBox لا يكون دائما مشكولاً كاملا فمثلا يكون بعض الأحيان جزء من الكلمة مشكون فقط أو أحرف متفرقة ،،،، ولكن لماذا لا نستخدم RichTextBox1.Find في البحث في RichTextBox1 ،،،

،،، في المكتبة الشاملة موجودة هذه الطريقة فلو كتبت نص كلمة غير مشكولة تريد البحث عنها في RichTextBox1 وكان نص الكلمة في الـRichTextBox1 مشكولاً جزئيا أو كليا يتم تحديده بالتمام دون زيادة أو نقصان ،،، ،،،

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

#4

السلام عليكم

أخي الكريم ليس بوسعي إلا أن أعطيك بعض الافكار إلى أن نحصل على الطريقة المثلا

بخصوص find في RichTextBox فأنا شخصيا لا أعتقد أنها ققد تفيدك جيدا جدا

حسن ما رأيك في هذه الطريقة

تضع كل ما في RTB عندك في متغير وتزيل كل أدوات الشكل بواسطة الدالة REPLACE حيث تستبدل حرف الشكل

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

بعد ذلك تحصل على أول فراغ بعد الحرف الاول وتفعل كما في المثال الاول

RichTextBox1.SetFocus
RichTextBox1.SelStart = FindPlace
RichTextBox1.SelLength = FindSpace - FindPlace

بحث FindSpace هنا هي المسافة المباشرة بعد إيجاد الكلمة

آمل أن يفيدك هذا المثال

ولكن المهم أن تكبته وتتبع بعض أخطائه حتى تحصل على الكود الكامل

آمل أن تفعل هذا

وآسف لانني لا أكتب الكود

#5

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

#6

السلام عليكم

اخي الكريم كلك نظر

أولا اخي الكريم هل كتبت الكود الاول أم أنك ما زلت في مرحلة التحليل

ما علينا

افعل التالي

ابحث عن الكلمة عرب

و من تم ستحصل على أول مكان أول حرف ومن تم وهو العين

وبعد ذلك ستبحث عن الباء الذي يلي مباشرة حرف العين

وهذا سيطرح معنا مشكلة أخرى وهي ماذا لو كان عندنا الكلمة (زلزال) وتريد البحث عن الكلمة كاملة

بهذه الطريقة ستحصل فقط على الحرفينا الاولين (زل) وبالطريقة الاولى لا مشكلة

لذلك علينا أن نضع شروطا على البحث عن الحرف الاخير هل سيكون المسافة الاولى بعد الحرف الاول

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

وكلك نظــــــــــــــــــــر

أخب الكريم أكتب الكود لحالة من الحالات وحاول أن تقوم بالتغييرات اللازمة

آسف مرة أخرى على عدم كتابة الكود

سلام

تم تعديل هذه المشاركة بواسطة micheal R jordan في 26 يوليو 2007 في 15:23

#7

السلام عليكم للإضافة

المشكلة

اقتباس
وهذا سيطرح معنا مشكلة أخرى وهي ماذا لو كان عندنا الكلمة (زلزال) وتريد البحث عن الكلمة كاملة

بهذه الطريقة ستحصل فقط على الحرفينا الاولين (زل) وبالطريقة الاولى لا مشكلة

حلها هو على الشكل التالي

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

تأكد من الكلمة التي توصلت إليها هي الكلمة المطلوبة وذلك ب =

الكلمة المطلوبة والكلمة التي حصلت عليها أو استعمل الدالة StrComp

سلام

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

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