مرحبا بالجميع :lol:
أبسط طريقة لمعرفة عدد الكلمات في مربع نص أنظر الكود B)
Dim Words As Integer = 0 For i As Integer = 0 To TextBox1.TextLength - 1 If TextBox1.Text(i) = " " Then Words += 1 End If Next i
وشكرا :lol:
مرحبا بالجميع :lol:
أبسط طريقة لمعرفة عدد الكلمات في مربع نص أنظر الكود B)
Dim Words As Integer = 0 For i As Integer = 0 To TextBox1.TextLength - 1 If TextBox1.Text(i) = " " Then Words += 1 End If Next i
وشكرا :lol:
موضوع بسيط لكن مفيد .... إليكم أيضا
Private Sub Button1_Click(ByVal sender as Object .... Dim Tab() As String = Split(TextBox1.Text, " ") MsgBox(Tab.Length) End Sub
مقالاتي في VB.NET وبرامجي على موقعي الجديد :
جميل جدا ما شاء الله لكنن انا ارييد اذا كان عدد الكلمات في التكست اقل من اربعة كلمات ( الاسم رباعي ) تخرج رسالة تقول ان الاسم لم يتم ادخالة بشكل صحيح هل هذا ممكن ؟؟؟؟؟؟؟؟
الله يعطيكم العافية
اقتباسجميل جدا ما شاء الله لكنن انا ارييد اذا كان عدد الكلمات في التكست اقل من اربعة كلمات ( الاسم رباعي ) تخرج رسالة تقول ان الاسم لم يتم ادخالة بشكل صحيح هل هذا ممكن ؟؟؟؟؟؟؟؟[/
بالنسبة لسؤال ناني مصطفى, فسيصبح الكود بالشكل التالي:
Private Sub Button1_Click(ByVal sender as Object ....
Dim Tab() As String = Split(TextBox1.Text, " ")
if Tab.Length<4 then msgbox(" الاسم لم يتم ادخالة بشكل صحيح")
End Subعلى اعتبار ان tab مصفوفة تحوي على الكلمات الموجودة في التكست
في الحقيقة هذه اسوء طريقة , لمعرفة عدد الاحرف, للأسف الشديداقتباسأبسط طريقة لمعرفة عدد الكلمات في مربع نص أنظر الكود
أنظر هذا الكود .
Me.TextBox1.Text = Me.TextBox1.Name.ToString For i As Integer = 0 To 10 Me.TextBox1.Text &= Me.TextBox1.Text Next 'Start counting the code executing time Dim sw As New Stopwatch() sw.Start() Dim Words As Integer = 0 For i As Integer = 0 To TextBox1.TextLength - 1 If TextBox1.Text(i) = " " Then Words += 1 End If Next i Me.Label1.Text = sw.ElapsedMilliseconds sw.Stop()
ناتج الوقت بالملي ثانية سيكون يساوي : 1472 لتنفيذ هذا الكود
بينما هذا الكود باستخدام الخاصية Length انظر
Me.TextBox1.Text = Me.TextBox1.Name.ToString For i As Integer = 0 To 10 Me.TextBox1.Text &= Me.TextBox1.Text Next 'Start counting the code executing time Dim sw As New Stopwatch() sw.Start() Dim s As String = Me.TextBox1.Text.Length - 1 Me.Label1.Text = sw.ElapsedMilliseconds sw.Stop() End Sub
الناتج صفر ملي ثانية .
والله يوفق الجميع لما فيه الخير و البركة.
في المثال يتضح المقال
شكرا أخي الشهاب الحارق على المعلومة :)
تم تعديل هذه المشاركة بواسطة crazy Programm2007er في 21 يونيو 2007 في 20:07
lelianأخي :)
مع الشكر الجزيل على المشاركة
إن الكود الذي كتبته يوجد به بعض العيوب :unsure:
العيب هو أنك لوضغطت زر المسافة أربع مرات فسيعتقد البرنامج أن الإسم صحيح
أرجو أن لا أكون قد أزعجتك بما كتبته :(
و لكن أخ شهاب نحن نناقش حساب عدد الكلمات و ليس الأحرف .. :)
مقالاتي في VB.NET وبرامجي على موقعي الجديد :
اقتباسالعيب هو أنك لوضغطت زر المسافة أربع مرات فسيعتقد البرنامج أن الإسم صحيح
الحل بإستخدام Trim إليك ذلك.
Dim s As String = Me.TextBox1.Text.Trim.Length - 1
على ماذا يُستدلُ كلامكاقتباسو لكن أخ شهاب نحن نناقش حساب عدد الكلمات و ليس الأحرف ..
اخونا الطيب يستخدم الخاصية TextLength وهذه تعود بعدد الاحرف لا الكلمات !! وإن سماها بغير إسمها.
ثم الكلمات تختبر بالتعابير النظامية Regular expression فلا تصلح البرمجة التقليدية في معرفة ذلك لانها ستكون غير محكمة
كحال الـ Regex
في المثال يتضح المقال
MsgBox(TextBox1.Lines.Length) 'عدد الاسطر
MsgBox(TextBox1.Text.Replace(vbNewLine, " ").Split(" ").Length) 'عدد الكلمات
MsgBox(TextBox1.Text.Replace(vbNewLine, "").Replace(" ", "").Length) 'عدد الحروف بدون مسافات
MsgBox(TextBox1.Text.Replace(vbNewLine, "").Length) 'عدد الحروف مع مسافاتاقتباسعلى ماذا يُستدلُ كلامك
أنا قصدت الإشارة فقط إلى فكرة الموضوع ....
اقتباساخونا الطيب يستخدم الخاصية TextLength وهذه تعود بعدد الاحرف لا الكلمات ...
من خلال العنوان فإن الموضوع يدور حول "معرفة عدد الكلمات في مربع نص" ... و الأخ crazy Programm2007er استخدم الخاصية TextLength للمرور على جميع الأحرف لكن ليس ليحسبها .. وإنما ليتأكد من المسافات الفارغة فإدا وجد مسافة فارغة يزيد قيمة Words += 1 .. و في الأخير يرجع قيمة Words التي توحي بعدد الكلمات كما ترى ...
اقتباسثم الكلمات تختبر بالتعابير النظامية Regular expression
فياريت يا أخ شهاب لو مثال صغير على حساب الكلمات باستخدام Regular expression ...
تحياتي
مقالاتي في VB.NET وبرامجي على موقعي الجديد :
بلاك ايز مشاركة جيدة و كود مختصر ولكن مشكلة الكود أنه يبحث عن المسافات بين اي ادخال سواءً كان حرف أو فاصلة أو غير ذلك
لذلك لن يكون دقيق في معرفة عدد الكلمات بالتحديد , لذلك قلنا ان Regex لعلوِ كعبها لا تضاها بشيء تقليدي.
Fikou-sama كلامك أخي صحيح و انا ما انتبهت على المتغير word لكن على كل الطريقة ليست هي الانسب
وطريقة بلاك ايز تفوقها بكثير.
على هذا الرابطاقتباسفياريت يا أخ شهاب لو مثال صغير على حساب الكلمات باستخدام Regular expression
بالتوفيق إن شاء الله.
في المثال يتضح المقال
هذا الموضوع مغلق.