В заданной строке, состоящей из "слов", разделенных пробелами, определить количество "слов" - VB

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

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

В заданной строке, состоящей из "слов", разделенных одним или более пробелами, определить количество "слов" Помогите...

Решение задачи: «В заданной строке, состоящей из "слов", разделенных пробелами, определить количество "слов"»

textual
Листинг программы
  1. Dim s_FindString As String      ' Строку, которую ищем.
  2. Dim s_InString As String        ' Исходная строка (из RichTextBox1).
  3. Dim Pos As Long                 ' Позиция найденного слова.
  4. Dim StartPos As Long            ' Начальная позиция поиска.
  5. Dim CountWords As Long          ' Количество строк.
  6. Dim WordDelimiters As String    ' Разделители строк.
  7.  
  8. With Me.RichTextBox1
  9.     .Text = "text ddd text ffff text text text dfdfd"   ' Это пробная строка. Потом исключить.
  10.    .SelStart = 1
  11.     .SelLength = Len(Me.RichTextBox1.Text)
  12.     .SelColor = RGB(0, 0, 0)
  13. End With
  14.  
  15. WordDelimiters = " ;:.,|"           ' Разделители слов. Можно вынести в поле формы.
  16.  
  17. s_FindString = UCase$(Me.Text3)     ' Строка поиска. Переводим в верхний регистр.
  18.  
  19. s_InString = UCase$(Me.RichTextBox1.Text)   ' Исходная строка. Тоже переводим в верхний регистр.
  20.  
  21. s_InString = " " & s_InString & " "         ' Добавляем по пробелу в начале и в конце строки,
  22.                                            ' для исключения ошибки, если искомое слово - первое
  23.                                            ' или последнее в строке.
  24.  
  25. StartPos = 1
  26.  
  27. Do
  28.     Pos = InStr(StartPos, s_InString, s_FindString)
  29.    
  30.     If Pos = 0 Then Exit Do                 ' Закнчиваем цикл, если ничего не найдено.
  31.    
  32.     ' Проверяем разделители.
  33.    If InStr(WordDelimiters, Mid$(s_InString, Pos - 1, 1)) > 0 And _
  34.        InStr(WordDelimiters, Mid$(s_InString, Pos + Len(s_FindString), 1)) > 0 Then
  35.  
  36.         CountWords = CountWords + 1                     ' Увеличиваем счётчик
  37.        ' Раскрашиваем найденное.
  38.        With Me.RichTextBox1
  39.             .SelStart = Pos - 2
  40.             .SelLength = Len(s_FindString)
  41.             .SelColor = RGB(255, 0, 0)
  42.         End With
  43.     End If
  44.    
  45.     StartPos = Pos + Len(s_FindString) - 1
  46. Loop
  47.  
  48. Me.Text2 = CountWords

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


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

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

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

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

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

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