السلام عليكم ورحمة الله وبركاته
هذا مثال يوضح استخدام الدالة السابقة
Dim test_split(), txt As String
txt="100 احمد خالد على"
'يتم فصل السلسة النصية حسب الفراغ
'في السلسة النصية السابقة
test_split = Split(txt, " ")
For i As Int16 = 0 To test_split.LongCount - 1
MsgBox(test_split(i))
Next
==================================================
النتيجة ستكون على النحو التالي
test_split(0)="100"
test_split(1)="احمد"
test_split(2)="خالد"
test_split(3)="علي"
شكرا ليك اخى adel2012
لم اقصدك ذلك و لكن سوف اقوم بالشرح بالتفصيل
عندى نص بيجى فى الشكل ده اخى
namewecomepass1234
بدون مسافات كل ما ارويد
ان اجيب كلمة wecome من بين النص لوحدها من غير كلمة name ولا باقى الناص عايزها لوحدها وبس
و ان اجيب 1234 من غير كلمة pass
بشرط ان يجى كلمة wecome فى متغير من نوع نص لوحدها
و ان تجى 1234 فى متغير من نوع نص غير المتغير التانى خالص
السلام عليكم...
إذا كان النص دائماً بنفس الصيغة (أي كلمة name يليها الاسم ثم كلمة pass يليها الرقم) فاكتب الإجراء التالي في بداية تعريف الـ Class:
كود :
Private Sub ExtractData(ByRef AText As String, ByRef AName As String, ByRef APass As String)
AText = AText.Trim
If AText = "" Then
AName = ""
APass = ""
Else
Dim PassPos As Integer = AText.ToUpper().IndexOf("PASS")
If PassPos = -1 Then
AName = AText.Substring(4)
APass = ""
Else
AName = AText.Substring(4, PassPos - 4)
APass = AText.Substring(PassPos + 4)
End If
End If
End Sub
ثم قم باستدعاء الإجراء بالشكل التالي (المثال يفترض أن النص الأصلي موجود في TextBox1 و سيضع الاسم في TextBox2 و الرقم في TextBox3):
كود :
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim MyText As String = TextBox1.Text
Dim TheName, ThePass As String
ExtractData(MyText, TheName, ThePass)
TextBox2.Text = TheName
TextBox3.Text = ThePass
End Sub
نرجو الاستفادة و السلام.
نحمده ونصلي على رسوله الكريم
كود :
Dim mainText As String = "namewecomepass1234"
Dim nameText As String = mainText.Substring(4, (mainText.Length - (mainText.Length - mainText.IndexOf("pass")) - 4))
Dim passText As String = mainText.Substring(mainText.IndexOf("pass") + 4, mainText.Length - (mainText.IndexOf("pass") + 4))
MessageBox.Show(nameText & vbNewLine & passText)
الدالة Substring خاصة باقتطاع النص، الوسيطة الأولى لبداية الاقتطاع والوسيطة الثانية لطول الاقتطاع (لو تركناها فارغة أي الوسيطة الثانية يقتص باقي النص من بداية التحديد في الوسيطة الأولى إلى نهاية النص) بامكاننا في المتغير (كلمة المرور) عدم ارسال الوسيطة الثانية وسيتم جلب الكلمة المرادة لكن احببت أن اضع الكود للتوضيح فقط.
كود :
Dim passText As String = mainText.Substring(mainText.IndexOf("pass") + 4)
المعذرة استاذنا ناجي إبراهيم كنت اكتب الرد بينما انت ترسله
السلام عليكم...
و الشكر الجزيل لك أخي ربيع، ففي الزيادة إفادة، و لولا وجود الأعضاء الذين يتبرعون بوقتهم و جهدهم لطرح المواضيع و تقديم الإجابات لما نهض هذا المنتدى و تقدم. نرجو من الله أن يكون ذلك صدقةً في كتاب حسناتهم عند الله.
سلام.