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

معرفة عدد الكلمات في مربع نص

مغلق
بدأه crazy Programm2007er في 21 يونيو 2007 · 12 رد · 1,951 مشاهدة · في Microsoft Visual Basic.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

مرحبا بالجميع :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:

#2

موضوع بسيط لكن مفيد .... إليكم أيضا

Private Sub Button1_Click(ByVal sender as Object ....

Dim Tab() As String = Split(TextBox1.Text, " ")

MsgBox(Tab.Length)

End Sub

مقالاتي في VB.NET وبرامجي على موقعي الجديد :

#3

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

#4

الله يعطيكم العافية

اقتباس
جميل جدا ما شاء الله لكنن انا ارييد اذا كان عدد الكلمات في التكست اقل من اربعة كلمات ( الاسم رباعي ) تخرج رسالة تقول ان الاسم لم يتم ادخالة بشكل صحيح هل هذا ممكن ؟؟؟؟؟؟؟؟[/

بالنسبة لسؤال ناني مصطفى, فسيصبح الكود بالشكل التالي:

Private Sub Button1_Click(ByVal sender as Object ....

Dim Tab() As String = Split(TextBox1.Text, " ")

if Tab.Length<4 then msgbox(" الاسم لم يتم ادخالة بشكل صحيح")

End Sub

على اعتبار ان tab مصفوفة تحوي على الكلمات الموجودة في التكست

#5
اقتباس
أبسط طريقة لمعرفة عدد الكلمات في مربع نص أنظر الكود
في الحقيقة هذه اسوء طريقة , لمعرفة عدد الاحرف, للأسف الشديد

أنظر هذا الكود .

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

الناتج صفر ملي ثانية .

والله يوفق الجميع لما فيه الخير و البركة.

في المثال يتضح المقال

#6

شكرا أخي الشهاب الحارق على المعلومة :)

تم تعديل هذه المشاركة بواسطة crazy Programm2007er في 21 يونيو 2007 في 20:07

#7

lelianأخي :)

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

إن الكود الذي كتبته يوجد به بعض العيوب :unsure:

العيب هو أنك لوضغطت زر المسافة أربع مرات فسيعتقد البرنامج أن الإسم صحيح

أرجو أن لا أكون قد أزعجتك بما كتبته :(

#8

مشكور أخي شهاب على العنصر الجديد علي Stopwatch ..

مقالاتي في VB.NET وبرامجي على موقعي الجديد :

#9

و لكن أخ شهاب نحن نناقش حساب عدد الكلمات و ليس الأحرف .. :)

مقالاتي في VB.NET وبرامجي على موقعي الجديد :

#10
اقتباس
العيب هو أنك لوضغطت زر المسافة أربع مرات فسيعتقد البرنامج أن الإسم صحيح

الحل بإستخدام Trim إليك ذلك.

 Dim s As String = Me.TextBox1.Text.Trim.Length - 1

اقتباس
و لكن أخ شهاب نحن نناقش حساب عدد الكلمات و ليس الأحرف ..
على ماذا يُستدلُ كلامك

اخونا الطيب يستخدم الخاصية TextLength وهذه تعود بعدد الاحرف لا الكلمات !! وإن سماها بغير إسمها.

ثم الكلمات تختبر بالتعابير النظامية Regular expression فلا تصلح البرمجة التقليدية في معرفة ذلك لانها ستكون غير محكمة

كحال الـ Regex

في المثال يتضح المقال

#11
		MsgBox(TextBox1.Lines.Length) 'عدد الاسطر
		MsgBox(TextBox1.Text.Replace(vbNewLine, " ").Split(" ").Length) 'عدد الكلمات
		MsgBox(TextBox1.Text.Replace(vbNewLine, "").Replace(" ", "").Length) 'عدد الحروف بدون مسافات
		MsgBox(TextBox1.Text.Replace(vbNewLine, "").Length) 'عدد الحروف مع مسافات
#12
اقتباس
على ماذا يُستدلُ كلامك

أنا قصدت الإشارة فقط إلى فكرة الموضوع ....

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

من خلال العنوان فإن الموضوع يدور حول "معرفة عدد الكلمات في مربع نص" ... و الأخ crazy Programm2007er استخدم الخاصية TextLength للمرور على جميع الأحرف لكن ليس ليحسبها .. وإنما ليتأكد من المسافات الفارغة فإدا وجد مسافة فارغة يزيد قيمة Words += 1 .. و في الأخير يرجع قيمة Words التي توحي بعدد الكلمات كما ترى ...

اقتباس
ثم الكلمات تختبر بالتعابير النظامية Regular expression

فياريت يا أخ شهاب لو مثال صغير على حساب الكلمات باستخدام Regular expression ...

تحياتي

مقالاتي في VB.NET وبرامجي على موقعي الجديد :

#13

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

لذلك لن يكون دقيق في معرفة عدد الكلمات بالتحديد , لذلك قلنا ان Regex لعلوِ كعبها لا تضاها بشيء تقليدي.

Fikou-sama كلامك أخي صحيح و انا ما انتبهت على المتغير word لكن على كل الطريقة ليست هي الانسب

وطريقة بلاك ايز تفوقها بكثير.

اقتباس
فياريت يا أخ شهاب لو مثال صغير على حساب الكلمات باستخدام Regular expression
على هذا الرابط

بالتوفيق إن شاء الله.

في المثال يتضح المقال

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

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