تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
دوال التعامل مع النصوص
#1
كاتب الموضوع : احمد نبيل احمد

السلام عليكم ورحمه الله

len

تستخدم لمعرفة طول النص (عدد الاحرف) وتستخدم كالتالى

كود :
Len("النص المراد معرفة طوله")
مثال

كود :
Dim s As String
s = "I Love Visual Basic.Net"
MsgBox(Len(s)) '23
الشرح : اولا حجزنا متغير نصى اسمه s ثم اسندنا اليه النص I Love Visual Basic.Net
بعد ذلك ظهرنا نتيجة داله len فى message box وهتكون النتيجة 23 وهو عدد احرف النص
الموجود فى المتغير
او نستخدم هذا الكود

كود :
MessageBox.Show(s.Length)
--------------------------------------------------------------------------------------------------


Trim

وهى تقوم بحذف الفراغات (المسافات ) الموجودة على يمين ويسار النص
مثال

كود :
Dim s As String
s = " I Love Visual Basic.Net "
MessageBox.Show(Trim(s))
نلاحظ ان النص الذى اسندنا الى المتغير s به مسافات على يمينه وعلى يساره ولكن
عند تنفيذ الكود ستلاحظ ان النص ظهر بدون المسافات وهذا بسبب الداله Trim
فهى حذفت المسافات الموجودة على يمين ويسار النص .
-----------------------------------------------------------------------------------------------------
RTrim

هذه الداله تقوم ايضا بحذف الفراغات ولكن تحذف الفراغات الموجودة على يمين النص فقط
مثال

كود :
Dim s As String
s = " I Love Visual Basic.Net "
MessageBox.Show(RTrim(s))
هنا هنلاحظ انها حذفت المسافات الموجودة على يمين النص فقط
-----------------------------------------------------------------------------------------------------
Ltrim

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

تقوم هذه الداله بتحويل حروف النص المرر لها الى حروف كبيرة Capital
مثال

كود :
Dim s As String
s = "I Love visual basic.Net"
MessageBox.Show(UCase(s))
لو نظرنا الى النص الذى اسندنا الى المتغير s هتلاحظ انه فى حروف كبيرة وحروف صغيرة
لكن عند تنفيذ الكود واظهار نتيجة الداله UCase هنلاحظ ان الحروف كلها تحولت الى احرف
كبيرة Capital
وممكن نعملها بهذه الطريقة

كود :
MessageBox.Show(s.ToUpper)
--------------------------------------------------------------------------------------------------
LCase

وهى عكس الداله السابقة فهذه الداله تقوم بتحويل حروف النص المرر لها الى حروف صغيره
وهى اختصار Lower case
فاذا اردنا جعل جملتنا السابقة I Love Visual Basic.Net الى حروف صغيرة نكتب

كود :
MessageBox.Show(LCase(s))
او

كود :
MessageBox.Show(LCase(s.ToLower))
---------------------------------------------------------------------------------------------------
LSet

تستخدم هذه الداله لااخذ جزء من الجهه اليسرى من النص
ونمرر لها وسيطين
الاول وهو source وهو النص الاصلى
الثانى وهو length وبيكن طول النص الى عايز تأخذه من النص الاصلى
مثال

كود :
Dim s As String
s = "I Love Visual Basic.Net"
MessageBox.Show(LSet(s, 6))
فى الكود دا كانى بقوله اظهرلى فى صندوق الرسائل messgae box اول 6 حروف من الجه اليسرى
للنص s وعند تنفيذ الكود هتلقى كتبلك I Love وهما اول 6 حروف موجدين فى النص
-----------------------------------------------------------------------------------------------------
RSet

وهى عكس السابقة فهى تستخدم لااخذ جزء من النص ولكن من اليمين
مثال


كود :
Dim s As String
s = "I Love Visual Basic.Net"
MessageBox.Show(RSet(s, 16))
عند تنفيذ الكود هتلقى ظهرلك اول 16 حرف من جهه اليمين يعنى هيظهرلك جمله
يعنى النتيجة ان هيظهرلك جملة Visual Basic.Net فى messagebox
----------------------------------------------------------------------------------------------------
MId

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

كود :
Dim s As String
s = "I Love Visual Basic.Net"
MessageBox.Show(Mid(s, 8, 6))
هذا الكود هيظهرلك رساله مكتوب فيها visual والسبب فى ذلك هى الداله mid
انظر الى هذا السطر

كود :
MessageBox.Show(Mid(s, 8, 6))
معنا هذا السطر انه يظهر فى messagebox بداية من الحرف 8 الموجود فى النص s
وياخذ 6 حروف من بداية الحرف الثامن
انظر الى الجملة I Love Visual Basic.Net هتلقى ان الحرف الثامن هو حرف v
والمرر الثانى الى هو 6 دا طول السلسلة الى هيخدها وهى 6 يعنى النتيجة هتكون
ظهور كلمة visual
---------------------------------------------------------------------------------------------------
ياريت لو فى حد مش فاهم حاجة من الحاجات دى
يٍسأل عن الى مش فاهمو وان شاء الله اجاوبه
يتنبع بأذن الله >>>>>>>>>>>>
}}}}
تم الشكر بواسطة:
#2


الداله StrReverse
تقوم هذه الداله بعكس النص المرر لها
فمثل عن تمرير نص مثل كلمة ahmed تقوم هذه الداله بعكسه ليصبح demha
مثال

كود :
Dim s As String
s = "visual basic"
MessageBox.Show(StrReverse(s))
تكون النتيجة هى عكس جملة visual basic لتصبح cisab lausiv
-----------------------------------------------------------------------------------------------
الداله Space
تقوم هذه الدال بوضع فراغات حسبب العدد المرر لها
مثال
لو افترضنا اننا حجزنا متغيرين string
واسندنا للمتغير الاول كلمة visual الثانى basic بهذا الشكل

كود :
Dim a As String = "visual"
Dim b As String = "basic"
بعد ذلك اردنا ان نظهر المتغيرين دول فى messagebox هنكتب

كود :
MessageBox.Show(a & b)
لكن عند التنفيذ هنلقى انه ظهرلنا visualbasic بس مافيش مسافة بين الكلمتين
علشان انا ماقولتلوش يعمل مسافة
هنا بقا ممكن نستخدم الداله space
انظر الى هذا الكود

كود :
MessageBox.Show(a & Space(2) & b)
لاحظ اننا كتبنا Space وفتحنا قوس وكتبنا 2 وكدة معناها انه هيعمل مسافتين
وممكن تعمل اى عدد مسافات انت عايزه
يتبع >>>>>>>>>>.
}}}}
تم الشكر بواسطة:
#3


الداله Split
تقوم هذه الداله بتقطيع نص الى اجزاء او كلمات
بناء على رمز معين او مسافات توضع فى مصفوفة افتراضية
مثلا
نفترض ان لدينا هذه الجملة
ahmed nabil ahmed@I love VIsual Basic@vb4arab
ونريد ان نقطع هذه الجملة الى اجزاء متفرقة
بناء على رمز @ الموجود بالجملة
انظر هذا الكود

كود :
Dim test_split() As String
Dim s As String
s = "ahmed nabil ahmed@I love VIsual Basic@vb4arab"
test_split = Split(s, "@")
MessageBox.Show(test_split(0))
MessageBox.Show(test_split(1))
MessageBox.Show(test_split(2))
اول سطر حجزنا مصفوفة اسمها test_split ونوعها string لاحظ اننا لم نحدد عدد عناصرها
السطر الثانى حجزنا متغير string ووضعنا فى جملتنا الى احنا عايزين نقسمها
السطر الرابع وهو اهم سطر قولتلو ان test_split هتساوى تقسيم الجملة s بناء على الرمز @
بالشكل دا هيقسم النص s ويحط كل جزء فى عنصر من عناصر المثفوفة test_split
الثلاث اسطر الاخيرة علشان اعرض كل عنصر لوحده
دا مجرد مثال صغير علشان تفهم بى الداله
لو حد مش فاهمها ومحتاج مثال تانى يقول
يتبع بأذن الله >>>>>>>>>>>
}}}}
تم الشكر بواسطة:
#4


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

كود :
MsgBox(StrComp("vb4arab", "vb4arab", CompareMethod.Text))
ستعيد صفر لان النصين متساوين

كود :
MsgBox(StrComp("vb4arab", "vb4arab.com", CompareMethod.Text))
ستعيد 1 لان النص الثانى اكبر من الاول


كود :
MsgBox(StrComp("vb4arab.com", "vb4arab", CompareMethod.Text))
ستعيد ايضا 1 لان النص الاول اكبر من الثانى
يتبع >>>>>>>>>>>>>>
}}}}
تم الشكر بواسطة:
#5


داله StrDup
تقوم هذه الداله بتكرار حرف او نص بعدد معين من المرات

كود :
MsgBox(StrDup(20, "A"))
هنا هيكرر حرف A عشرين مرة

كود :
MsgBox(StrDup(10, "b"))
هنا هيقرر حرف b عشر مرات
-------------------------------------------------------------
داله Replace
تقوم باستبدال نص معين فى جملة بنص اخر انظر الكود التالى

كود :
Dim s As String = "I love Visual Basic 6"
MsgBox(Replace(s, "6", ".net"))
حجزنا متغير واسندنا اليه جمله I Love Visual Basic 6
ثم عن طريق الداله Replace استبدلنا 6 بى .net
فهتظهر رساله مكتوب فيها
I Love visual BAsic .net
كما يمكنك استخدمه بهذا الشكل

كود :
Dim s As String = "I love Visual Basic 6"
s.Replace("6", ".net")
يتبع >>>>>>>>>>>>>>>>>>
}}}}
تم الشكر بواسطة:
#6


الداله Instr
هذه الداله تعطيك موقع نص خلال نص اخر
بمعنى اننا لو عننا نصنا الحبوب I Love visual basic
وعندنا نص ثانى وهو love حلو الكلام
عن طريق الداله Instr نقدر نعرف موقع النص الثانى الى هو Love موجود فين فى النص الاول
وتعيد هذه الداله قيمة من النوع Integer وفى مثالنا السابق هتعطى رقم 3 لان النص الثانى
موجود فى النص الاول بداية من الحرف الثالث ممكن تطبق هذا الكود علشان تفهم اكثر

كود :
Dim s As String = "I Love visual basic"
Dim s2 As String = "Love"
MsgBox(InStr(s, s2, CompareMethod.Binary))
والداله Instr بتاخد ثلاث وسائط
الاول : وهو النص الى هتبحث فى وفى مثالنا هذا النص الاول
الثانى : النص الى هتبحث عنه
الثالث : طريقة البحث وهناك نوعين الاول text والثانى binary ولو اختارنا binary
هيفرق فى البحث بين الحروف الكبيرة والصغيرة يعنى مثلا كلمة love غير LOVE
اما لو اختارنا text مش هيفرق بين الحروف الكبيرة والحروف الصغيرة
-----------------------------------------------------------------------
تطبيق على الداله
الان هنعمل تطبيق صغير علشان تفهم اكثر
هنستخدم الداله دى فى البحث فى صندوق نص عن النص الى احنا عايزينه
طيب افتح مشروع جديد وضع فيه button و2 text box
اجعل خاصية text للا button تساوى find
واجعل خاصية Multiline للا textbox2 تساوى TRUE
واكتب هذا الكود فى زر الامر

كود :
Dim i As Integer

i = InStr(TextBox2.Text, TextBox1.Text, CompareMethod.Binary)
If i > 0 Then
TextBox2.Select(i - 1, Len(TextBox1.Text))
TextBox2.Focus()
Else
MsgBox("لم يتم العثور على شى")
End If
عند تنفيذ البرنامج اكتب اى نص فى textbox2 وبعد كدا اكتب الكلمة الى انت عايز تبحث عنها
فى textbox2 واضغط على زر الامر اذا كانت موجودة هيعلملك على الكلمة الى انت بتبحث عنها
ولو مالقاش حاجة هيطلعلك رساله مكتوب فيها لم يتم العثور على شى
شرح الكود : فى السطر الاول حجزنا متغير من النوع integer علشان نحط فى نتيجة الداله Instr
فى السطر الثانى اسندنا نتيجة الاله Instr الى هتبحث قى TextBox2 عن النص
الموجود فى TextBox1
فى السطر الثالث بنختبر اذا كان المتغير i يحتوى على قيمة اكبر من 0
اذا تحقق الشرط هيختار من TextBox2 النص بداية من قيمة i ناقص واحد
وطول النص الموجود فى TextBox1
واذا لم يتحقق الشرط هيطلع رساله فيها لم يتم العثور على شى
يتبع >>>>>>>>>>>>>>>>
}}}}
تم الشكر بواسطة:
#7


الداله Asc

ترجع كود الرمز المدخل (ascii code) فمثلا الحرف A كوده 65 و الحرف a كوده 97
نلاحظ ان حرف A يختلف عن a

كود :
MessageBox.Show(Asc("A"))
ستكون النتيجة 65

كود :
MessageBox.Show(Asc("a"))
النتيجة 97
----------------------------------------------------------------------------------------------------
الداله Ascw
وهى عكس الداله Asc فهذه الداله ترجع كود الرمز المدخل الى ترميز unicode

كود :
MsgBox(AscW("ب"))

كود :
MsgBox(AscW("ت"))
-------------------------------------------------------------------------------------------------
الداله chr
تاخذ قيمة بين 0 و 255 وتعيد الحرف المقابل للقيمة فى جدول الرموز ascii
مثلا الرقم 13 خاص بال Enter والرقم 35 خاص بالرمز # والرقم 37 خاص بالرمز % وهكذا
كل رقم امامه رمز
بما ان الرقم 13 خاص بال Enter ايه رايكم لو نظهر رساله تحتوى على اكثر من سطر
انظر هذا الكود

كود :
MsgBox("vb4arab" & Chr(13) & "vb.net" & Chr(13) & "ahmed nabil")
نلاحظ انه messagebox كتب vb4arab ثم فى سطر جديد كتب vb.net وكأننا ضغطنا على Enter
ثم كتب ahmed nabil فى سطر ثالث.
طيب نفترض لو عايزين نظهر فى رساله كلمة #vb4arab# بنفس الشكل دا
واحنا قولنا فوق ان الرقم 35 خاص بهذا الرمز # يعنى الكود هيبقى بهذا الشكل

كود :
MsgBox(Chr(35) & "vb4arab" & Chr(35))
-----------------------------------------------------------------------------------------------
الداله chrw
وهى عكس الداله chr فهى تعيد الحرف الممثل لهذه القيمة فى الترميز unicode

كود :
MsgBox(ChrW(1576))
تعيد حرف (ب)

كود :
MsgBox(ChrW(1578))
تعيد حرف (ت)
يتبع >>>>>>>>>>>>
}}}}
تم الشكر بواسطة:
#8

الداله Join

وتعمل هذه الداله على تجميع نص مقسم على سبيل المثال لو كان لدينا مصفوفة
من 3 عناصر واسندنا لكل عنصر قيمة وعايزين نظهر كل عناصرها فى Messagebox
اى نريد تجميع هذه العناصر لاظهارها فى رساله او لوضعها فى متغير انظر هذا الكود

كود :
Dim s(2) As String
s(0) = "I"
s(1) = "Love"
s(2) = "Visual basic"
MsgBox(Join(s))
عند تنفيذ الكود هيظهر فى msgbox جملة I Love visual basic مع ان كانت هذه الجملة
مقسمة وكل جزء منها فى عنصر فى المصفوفة الا ان الداله join جمعت هذه العناصر مع بعض


يتبع >>>>>>>>>
}}}}
تم الشكر بواسطة: thevirus
#9


الداله GetChar

وهى تعود بقيمة من النوع char حرف
وليها 2 مررات
الاول هو النص الذى تريد معرفة الحرف منه
الثانى وهو رقم index للحرف الذى تريده

كود :
Dim s As String = "I Love Visual basic"
MsgBox(GetChar(s, 3))
هتكون النتيجة هى حرف L لانه الحرف الثالث فى النص s

كود :
MsgBox(GetChar(s, 8))
هتعيد الداله هنا حرف V لانه الحرف الثامن

يتبع >>>>>>>>>>>>>>>>>
}}}}
تم الشكر بواسطة: thevirus
#10


ايضا يمكنك عمل المزيد من العمليات المختلفة فى المتغيرات النصية
لو لدينا مثلا متغير واسندنا اليه جمله I Love Visual Basic

كود :
Dim s As String = "i Love visual basic"
يمكنك عمل Remove لحرف او لكلمة فى المتغير s

كود :
MsgBox(s.Remove(7, 6))
رقم 7 هنا يمثل رقم index اى الحرف الذى تريد المسح من بدايته
الرقم 6 يمثل عدد الحروف الذى تريد مسحها
يعنى بالشكل دا هيمسح 6 حروف من بداية الحرف السابع
----------------------------------------------------------------------
يمكن ايضا عمل Insert انظر الى هذا الكود

كود :
Dim s As String = "ahmed ahmed"

MsgBox(s.Insert(6, "nabil "))
-----------------------------------------------------------------------
يمكنك معرفة موضع حرف معين اوكلمة فى نص مثل داله Instr


كود :
Dim s As String = "I Love Visual basic"
MsgBox(s.IndexOf("Love", 0))
ورقم 0 هنا يعنى انه سيبحث من اول حرف فى النص لان اول حرف بيكون رقم الاندكس له صفر
-------------------------------------------------------------------------
يتبع>>>>>>>>>>
}}}}
تم الشكر بواسطة: thevirus


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  [درس فيديو] تحذير هام في التعامل مع For و Try ali.alfoly 3 104 أمس, 12:43 AM
آخر رد: silverlight
Wink [مقال] كفية التعامل مه الجملة الشرطية IF alims 8 3,519 19-11-16, 01:06 AM
آخر رد: LoveVb
  ترجمة النصوص من الإنجليزية الي العربية بين الواقع و الخيال silverlight 0 401 19-12-15, 05:12 PM
آخر رد: silverlight
Big Grin [مقال] كفية التعامل مع حلقة التكرار For , For Each alims 8 3,481 01-11-15, 11:51 PM
آخر رد: adel27
  [VB.NET] التعامل مع الصور في vb net أحمد النجار 2 1,009 03-06-15, 10:45 PM
آخر رد: أحمد النجار
  التعامل مع الملفات الصوتية ........دردشة برمجية RaggiTech 6 2,942 19-12-14, 11:11 PM
آخر رد: sniperjawadino
Lightbulb [مقال] التعامل مع اختصارات الملفات Shortcuts Magic Sword 1 628 03-11-14, 12:03 PM
آخر رد: alzahrani
  طريقة عمل برنامج زخرفة النصوص 3booody 3 1,544 19-06-13, 11:36 PM
آخر رد: Hassan Khamees
  الكامل في VB.Net (التعامل مع الأقراص و المجلدات و الملفات) rinawi 3 1,256 25-05-13, 01:11 PM
آخر رد: shaker.soft
  معلومة ::: التعامل مع Registry RaggiTech 3 783 06-10-12, 07:55 PM
آخر رد: RaggiTech

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم