Выделить вещественное число из строки - VB
Формулировка задачи:
Доброго всем времени суток!!Пожалуйста помогите разобраться.Дана строка,содержащая слова,разные символы, вещественные и целые числа.Нужно получить сумму чисел.Во какой огород получился.Работает,но если встречается число с 0 до точки не работает (0.5)
Что я не так делаю?Спасибо.
Листинг программы
- Option Explicit
- Dim stroka() As String
- Dim n As Integer, s As String
- Dim sum As Single, kol As Integer, i As Integer
- Private Sub Form_Click()
- List1.Clear
- s = InputBox("Введите строку")
- List1.AddItem (s) 'записал в List
- s = Strings.Trim(s) 'Удалим лишний пробел
- Do Until Strings.InStr(s, " ") = 0 'пока не будет вхождений
- s = Strings.Replace(s, " ", " ") '
- Loop
- stroka = Strings.Split(s) 'записываем в массив
- n = UBound(stroka)
- sum = 0
- kol = 0
- For i = 0 To n
- 'если число считаем сумму
- If Strings.Trim(Str(Val(stroka(i)))) = stroka(i) Then
- sum = sum + Val(stroka(i))
- kol = kol + 1 ' считаем количество чисел
- End If
- Next
- List1.AddItem ("------------------------------------")
- If kol = 0 Then
- List1.AddItem ("В строке нет чисел")
- Else
- List1.AddItem ("Сумма =" & Str(sum))
- End If
- End Sub
Решение задачи: «Выделить вещественное число из строки»
textual
Листинг программы
- Dim x, w
- Static re As Object
- If re Is Nothing Then
- Set re = CreateObject("vbscript.regexp")
- re.Pattern = "[-+]?[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)?"
- re.Global = True
- End If
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д