متاسفانه فعلا نمیتونم با اکانت خودم وارد سایت بشم.
گفتم که شوخی کردم ... میدونم قصدتون تمسخر نبود (من پر روتر از این حرفها هستم که به این راحتیها بهم بر بخوره!)
من البته تا حالا طرف دلفی نرفتم، ولی تو VB.NET میتونید با استفاده از Array.IndexOf ببینید که شیی مورد نظرتون توی آرایه هست یا نه. کدی که بالا نوشتید تفریبا اینطوری میشه :
Dim Source As String = TextBox1.Text
Dim AcceptableChars() As Char = {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9"}
Dim i As Int32
While i < Source.Length - 1
If Array.IndexOf(AcceptableChars, Source.Chars(i)) = -1 Then
Source = Source.Remove(i, 1)
Else
i += 1
End If
End While
TextBox1.Text = Source
ولی شیی Char یه عالمه متد دیگه داره که این جور کارها رو راحت میکنه.
Dim Source As String = TextBox1.Text
For Each c As Char In Source.ToCharArray
If Not Char.IsDigit(c) Then
Source = Source.Remove(Source.IndexOf(c), 1)
End If
Next
TextBox1.Text = Source
در ضمن برای دستکاری String ها هیچ کلاسی قدرتمندتر از Reqular Expression نیست :
Dim Source As String = TextBox1.Text
TextBox1.Text = ""
Dim Pattern = "\d+" 'only digits
Dim Eng As New Regex(Pattern)
Dim MC As MatchCollection
MC = Eng.Matches(Source)
For Each m As Match In MC
TextBox1.Text &= m.Value
Next