16-09-20, 01:33 AM
السلام عليكم
عندي نص مشكل في richtextBox
الان اكتب في مربع نص textBox كلمة غير مشكلة
سيبحث عن اي كلمة مهما كانت تشكيلها و يلونها
حاولت بعدة طرق ........ لكن انجح طريقة هي نوعا ما طويلة في الانجاز
تعتمد الطريقة على وضع مصفوفة بكل الحركات فتحة و ضمة و شدة و شدة وفتحة و تنوين و سكون ........الخ
PHP كود :
Dim harkat() As String = {"", "َ", "ُ", "ِ", "ّ", "ْ", "ًّ", "ُّ", "ِّ", "ً", "ٌ", "ٍ"}
ثم يقوم الكود بوضع مصفوفة تضع فيها كل الاحتمالات التي يمكن ان تكون بها الكلمة يعني
من اجل مصفوفة حركات بها 12 عنصر ........ من اجل كلمة من ثثلاث حروف سيكون عدد الاحتمالات هو 1728
اي 12 قوة 3 ......... اي اذا اكنت الكلمة من خمسة حروف فالاحتمالات هي 12 قوة 5 اي 248832
هذا كود انشاء الاحتمالات و عرضها في ليسبوكس للاطهار و حفظها في مصفوفة
PHP كود :
[align=center] Dim str = TextBox1.Text[/align]
[align=center] ListBox1.Items.Clear()[/align]
[align=center] resul.Clear()[/align]
[align=center] Dim ltr1 = str(0)[/align]
[align=center] Dim ltr2 = str(1)[/align]
[align=center] Dim ltr3 = str(2)[/align]
[align=center] Dim pp = 0[/align]
[align=center] For Each h1 As String In harkat[/align]
[align=center] For Each h2 As String In harkat[/align]
[align=center] For Each h3 As String In harkat[/align]
[align=center] mot3 = ltr3 & h3[/align]
[align=center] ''''''''''''''''''''[/align]
[align=center] mot2 = ltr2 & h2 & mot3[/align]
[align=center] ''''''''''''''''''[/align]
[align=center] mot1 = ltr1 & h1 & mot2[/align]
[align=center] ListBox1.Items.Add(mot1)[/align]
[align=center] resul.Add(mot1)[/align]
[align=center] pp += 1[/align]
[align=center] Next[/align]
[align=center] Next[/align]
[align=center] Next[/align]
[align=center][/align]
[align=center] Label1.Text = pp[/align]
ثم يقوم كود البحث في عنصر richtextbox بالمقارنة بكل هذه الاحتمالات و يقوم بتلوينها
كود البحث ذاحل الريشبوكس
PHP كود :
[align=center] Dim mm = 0[/align]
[align=center] RichTextBox1.SelectAll()[/align]
[align=center] RichTextBox1.SelectionColor = Color.Black[/align]
[align=center] For Each sa As String In resul[/align]
[align=center] Dim index = RichTextBox1.Text.LastIndexOf(sa)[/align]
[align=center] If index <> -1 Then[/align]
[align=center] RichTextBox1.Find(sa, index, RichTextBox1.TextLength, RichTextBoxFinds.None)[/align]
[align=center] RichTextBox1.SelectionColor = Color.Red[/align]
[align=center] mm += 1[/align]
[align=center] End If[/align]
[align=center] Next[/align]
[align=center][/align]
[align=center][/align]
[align=center] Label2.Text = mm[/align]
لاحظ معي من اجل كلمة ( حمد )
في النص التالي ( مُحَمَدٌ حَمِدَ الله فهو مَحْمُودٌ أحْمَد فلله الحمد و الحَمْد حَمَّد تَحمِيدا حْمِد استحْمَدَ )
النتيجة
النتيجة مرضية الى حد ما
يعين الكود صالح ( فقط ) لكمة من 3 حروف ..........لذلك في الملف السورس حددت 3 حروف كطول اقص لتمستبوكس
----------------------
سؤالي يا كرام كيف اعدل على الكود ليتحمل كلمة من اكثر من 3 حروف .........
و ايضا الغاء تشكيل الكلمة التي نبحث عنها ليعمل الكود طبعا
الملف السورس
tachkilCoran.rar (الحجم : 69.69 ك ب / التحميلات : 16)
شكرا
لعل الكلمة التي تنفعني لم أكتبها بعد
عبد الله بن المبارك