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

عندي textbox بها اعداد مثل 123 456 2 56 8765

واركز ان تلك الأعداد تختلف من حيث عدد ارقامها فمنها عدد مكون من رقم او رقمين او ثلاثة او اربعة

يفصل بين كل عدد مسافة واحدة واركز ان يفصل بين كل عدد وليس رقم مسافة واحدة

المطلوب كود يعطيني كل عدد علي حدة أي كود يقوم بأستبدال كل عدد برقم اخر

مثلا الكود يقوم بأستبدال كل عدد برقم انا احدده وليس له ترتيب او نظام محدد
الرد }}}
تم الشكر بواسطة:
#2
[COLOR="#800000"]السلام عليكم ورحمة الله وبركاته
بحسب استخدامي لفيجول بيسك دوت نت استخدم هذه الطريقه
[/COLOR]
كود :
For Each num As String In Me.TextBox1.Text.Split(" ")
            num = Replace(num, "23", "8")
            num = Replace(num, "235", "0")
            Me.ListBox1.Items.Add(num)
        Next
حاول تغير الكود على فيجول 6 لان بصراحة نسيت الكثير عن فيجول 6
الرد }}}
تم الشكر بواسطة:
#3
قد نسيت شي مهم واعتذر وهو لاتستخدم الدالة Replace والسبب اذا حاولت تغير رقم 10 مثلآ الى 2 وصادف ان الرقم كان 100 راح يحول ال10 الى2 لذلك استخدم عبارة if
كود :
If num = "100" Then num = "1"
الرد }}}
تم الشكر بواسطة:
#4
شكرا لتكرمك بالرد اخي الكريم

احاول التعديل عليه ان شاء الله
الرد }}}
تم الشكر بواسطة:
#5
اخواني الكرام وجدت عندي الكود علي الجهاز فقررت ارفعه للأستفادة لباقي الأعضاء
كود :
Dim MyText() As String
Private Sub Command1_Click()
On Error Resume Next
MyText() = Split(Text1.Text, " ")
For i = 0 To Val(MyText(Index))
MsgBox MyText(i)
Next
End Sub
الرد }}}
تم الشكر بواسطة:
#6
السلام عليكم

جرب هذه الدالة :

كود :
Private Function ReplaceNumber(NumberIndex As Integer, NewValue As String) As Boolean

Dim Numbers() As String
Dim I As Integer

Numbers = Split(Trim$(Text1.Text), " ")

If UBound(Numbers) > -1 Then

   If NumberIndex > LBound(Numbers) + 1 And _
      NumberIndex < UBound(Numbers) + 1 Then
      
      Text1.Text = ""
      
      For I = LBound(Numbers) To UBound(Numbers)
          If NumberIndex = I + 1 Then
             Text1.Text = Text1.Text & Trim$(NewValue) & " "
          Else
             Text1.Text = Text1.Text & Numbers(I) & " "
          End If
      Next
      
      Text1.Text = Trim$(Text1.Text)
      ReplaceNumber = True
      Exit Function
  
   Else
  
      ReplaceNumber = False
      Exit Function
  
   End If
  
Else

   ReplaceNumber = False
   Exit Function
  
End If

End Function

Private Sub Command1_Click()

MsgBox ReplaceNumber(2, "542")

End Sub

- تحياتي .
الرد }}}
تم الشكر بواسطة:
#7
حلك صحيح اخي الصافي بإستخدام الدالة Split
ولكن يوجد خطأ في كتابه الكود
عدل الكود الى هذا
كود :
[align=left]
Dim MyText() As String
MyText() = Split(Text1.Text, " ")
For i = 0 To UBound(MyText)
MsgBox MyText(i)
Next
[/align]

بالتوفيق
الرد }}}
تم الشكر بواسطة:


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


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