منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : درس: كيفية حساب عدد الأسطر في نص
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
<< بسم الله الرحمن الرحيم >>


أبدأ أول درس من دروسي حصرياً لمنتدى فيجوال بسيسك لكل العرب فقط داعيا له و للإدارة و لي التوفيق Smile
أما بعد , كل مبرمجي الفيجوال بيسيك دوت نت يعلمون أنه لا توجد دالة برمجية مباشرة لحساب عدد الأسطر و لتلافي هذا النقص أقدم لكم شرحا مبسطاً لكود يحسب هذا المقدار
مبدئياً ليكن ما نحتاجه فورم واحد Form1 و أداة زر Button1 و أداة نص Textbox1

فكرة الكود :

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

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

قيمة الأسكي لهذا الزر هي 13 كما هو معرف دولياْ فببساطة بدراسة كل حرف نقوم مقارنة قيمته مع هذه القيمة فإذا ساوتها فنحن بصدد سطر جديد من صندوق النص
سنعرف في كود الحساب إذاً متغير يحفظ بها عدد الأسطر نعدل عليه كلما وجدنا سطرا جديدا Smile

الكود مع شرحه :


   Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

       ' تعريف متغيرات لازمة للعملية
       Dim Lines As Integer = 0
       Dim I As Integer = 0
       Dim S As String = ""

       'حلقة تكرارية تبدأ من أول حرف في صندوق النص و حتى آخر حرف
       For I = 0 To TextBox1.Text.Length - 1

           'تعيين قيمة للمتغير الذي عرفناه أعلاه تساوي حرف واحد مقتطع من النص
           S = TextBox1.Text.Substring(I, 1)

           'إزا كانت النص المقتطع مساويا لقيمة الضغط على
           'Enter من لوحة المفاتيح
           'نعلم مسبقا أن قيمة الزر تساوي 13
           If S = Chr(13) Then

               'تزداد قيمة متغير عدد الأسطر بمقدار واحد
               Lines += 1

           End If
       Next

       'رسالة نصية بعدد الأسطر طبعا أضفنا القيمة 1 لأنه السطر الأول قيمته 0
       'و لتجاوز هذه المشكلة يصبح السطر الأول قيمته واحد و هكذا
       MsgBox(Lines + 1)
   End Sub

لا تنسوا المثال في المرفقات Smile
العملية إذا بسيطة جداً أتمنى أن يكون الموضوع سلس و الشرح مفهوم Smile
تم بقلم المبرمج الطموح vb6
تحياتي للجميع ^___^
ايجاد عدد السطور
TextBox1.Lines.Length
textbox لا يقبل انتر اذا جعلتة ملتي لاين جرب انتر لن تعمل الحل استخدام
richTextBox
ايجاد عدد السطور
richTextBox1.Lines.Length
ايضا يمكنك التعديل على سطر معين
درس رائع بارك الله فيك
[b]شكرا على مجهودك اخي الكريم[/b]
أخي Mostafa Dahab كلامك صحيح بالتكست بوكس الافتراضي لا يقبل تعدد الأسطر و لكن انا أتكلم عن تكست بوكس عُدلت فيه خاصية MultiLine لتصبح فعالة بالإضافة لأشرطة التمرير Scrolls .... شكرا على التنبيه Smile
أخي mostafa zaki شكرا على مرورك الطيب Smile
شكرا لك وجعلها في ميزان حسناتك
بارك الله فيك ...