Выделить вещественное число из строки - VB

Узнай цену своей работы

Формулировка задачи:

Доброго всем времени суток!!Пожалуйста помогите разобраться.Дана строка,содержащая слова,разные символы, вещественные и целые числа.Нужно получить сумму чисел.Во какой огород получился.Работает,но если встречается число с 0 до точки не работает (0.5)
Листинг программы
  1. Option Explicit
  2. Dim stroka() As String
  3. Dim n As Integer, s As String
  4. Dim sum As Single, kol As Integer, i As Integer
  5. Private Sub Form_Click()
  6. List1.Clear
  7. s = InputBox("Введите строку")
  8. List1.AddItem (s) 'записал в List
  9. s = Strings.Trim(s) 'Удалим лишний пробел
  10. Do Until Strings.InStr(s, " ") = 0 'пока не будет вхождений
  11. s = Strings.Replace(s, " ", " ") '
  12. Loop
  13. stroka = Strings.Split(s) 'записываем в массив
  14. n = UBound(stroka)
  15. sum = 0
  16. kol = 0
  17. For i = 0 To n
  18. 'если число считаем сумму
  19. If Strings.Trim(Str(Val(stroka(i)))) = stroka(i) Then
  20. sum = sum + Val(stroka(i))
  21. kol = kol + 1 ' считаем количество чисел
  22. End If
  23. Next
  24. List1.AddItem ("------------------------------------")
  25. If kol = 0 Then
  26. List1.AddItem ("В строке нет чисел")
  27. Else
  28. List1.AddItem ("Сумма =" & Str(sum))
  29. End If
  30. End Sub
Что я не так делаю?Спасибо.

Решение задачи: «Выделить вещественное число из строки»

textual
Листинг программы
  1. Dim x, w
  2. Static re As Object
  3. If re Is Nothing Then
  4.   Set re = CreateObject("vbscript.regexp")
  5.   re.Pattern = "[-+]?[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)?"
  6.   re.Global = True
  7. End If

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 4.25 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы