انا عندي جمل نصية مختلفة اريد حذف اجذا منها حسب الاتي
اولا mn nob
2 dfth oun
3 ali-smart
4 aiman\good
ebrahim? student
اولا الجمل ليست ثابتة في طول المقطع وهية دية المشكلة انا حاولت اعتمد علي الثوابت وهي 1 الفراغ ومابعدة يبقي الجزء الباقي nob
2 oun
3 مابعد - وهي smart
4 مابعد \ good
وهكذا انا حاولت بالكود دة ولكن يحذف مقطع واحد "-" كيف اتعامل معهم بكود واحد يعني اي جملة تحتوي (-," ",\) بكود واحد يبقي مابعد العلامة
Dim n, b As String
n = Textbas.Text
b = n.Remove(n.LastIndexOf("-") )
بدل ما تحذفها استبدلها بقيمة فارغة بدالة Replace
المشكلة معايا اني نفذت الكود بس مع وجود اكتر من شرط اتلخبط شوي ولو حطيت دالة replace بردك المشكلة في ان في عدة شروط
السلام عليكم و رحمة الله و بركاته
أخي الكريم أعتقد حسب ما فهمت من كلامك أنه يمكن أنا يكون هناك حل بإستخدام طريق
split و ذلك عن طريق تقطيع الجمله إلى مقاطع بإستخدام علامه مميزه و يكون مثل ذلك:
كود :
Dim A as string = "النص"
Dim S = A.split("الإشارة المميزه")
Msgbox(S(0))
Msgbox(S(1))
ملحوظه عند كتابة :
S(0)
تعطيك ما قبل الإشارة المميزه
S(1)
تعطيك ما بعد الإشارة المميزه
و إن كان هناك أي تعقيب أنا في الخدمه
كود :
TextBox1.Text = TextBox1.Text.Replace(" oun", "")
TextBox1.Text = TextBox1.Text.Replace("-smart", "")
TextBox1.Text = TextBox1.Text.Replace("\good", "")
TextBox1.Text = TextBox1.Text.Replace(" student", "")
ليش تعقدون الموضوع ؟؟
استعمل (regular expressions (regex
لكي يتبين مرادك لماذا لا تضع اكثر من نص مختلف وتضع بجانبة النص الاذي تريد استخلاصه
الان فهمت قصدك اخي اولآ ضع هذه الطريقة
كود :
Private Sub Change(ByVal chr1 As Char, ByVal chr2 As Char, ByVal NewStr As String)
On Error Resume Next
While TextBox1.Text.Contains(chr1)
If Not TextBox1.Text.Contains(chr2) Then
Exit While
End If
Dim n As Short = TextBox1.Text.IndexOf(chr1) + 1
Dim txt As String = Mid(TextBox1.Text, n, TextBox1.TextLength - n)
Dim i As Short = txt.IndexOf(chr2)
TextBox1.Text = TextBox1.Text.Replace(Mid(TextBox1.Text, n, i + 1), NewStr)
End While
End Sub
عند الاستدعاء اكتب Change وارسل ثلاث باريمترات
لاحظ الشرح مع الالوان
كود :
Change([color=#0000FF]"\"[/color], [color=#FF0000]"H"[/color], [color=#800000]""[/color])
الحرف الذي تبدأ بها الكلمة مثل
3booody\
الحرف الثاني والذي يكون بعد الكللمة المراد تغيرها
3booodyH\
الاخير وهو نصي يأخذ الكلمة التي تريد التغير اليها
ملاحظه لاتكرر الاحرف الثانية H حاول تغير الحرف عند الارسال حتى لايحدث اخطاء
علمآ بأن الكود اتعبني شوي لان اخذ مني وقت لكن ماكو تعب لأخواني(ولاحد يظن ان الكود معقد وطويل لكن السبب هو حتى اتلافى الاخطاء مع تكرار الاحرف)
موفق
بالرغم من ان الطلب معقد بعض الشيء بس المنتدي بة كثير من المبدعين وانا يكفيني التفاعل مع الموضوع بالشكل الجميل دة