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

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

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

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

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

textual
Листинг программы
Dim s_FindString As String      ' Строку, которую ищем.
Dim s_InString As String        ' Исходная строка (из RichTextBox1).
Dim Pos As Long                 ' Позиция найденного слова.
Dim StartPos As Long            ' Начальная позиция поиска.
Dim CountWords As Long          ' Количество строк.
Dim WordDelimiters As String    ' Разделители строк.
 
With Me.RichTextBox1
    .Text = "text ddd text ffff text text text dfdfd"   ' Это пробная строка. Потом исключить.
    .SelStart = 1
    .SelLength = Len(Me.RichTextBox1.Text)
    .SelColor = RGB(0, 0, 0)
End With
 
WordDelimiters = " ;:.,|"           ' Разделители слов. Можно вынести в поле формы.
 
s_FindString = UCase$(Me.Text3)     ' Строка поиска. Переводим в верхний регистр.
 
s_InString = UCase$(Me.RichTextBox1.Text)   ' Исходная строка. Тоже переводим в верхний регистр.
 
s_InString = " " & s_InString & " "         ' Добавляем по пробелу в начале и в конце строки,
                                            ' для исключения ошибки, если искомое слово - первое
                                            ' или последнее в строке.
 
StartPos = 1
 
Do
    Pos = InStr(StartPos, s_InString, s_FindString)
    
    If Pos = 0 Then Exit Do                 ' Закнчиваем цикл, если ничего не найдено.
    
    ' Проверяем разделители.
    If InStr(WordDelimiters, Mid$(s_InString, Pos - 1, 1)) > 0 And _
       InStr(WordDelimiters, Mid$(s_InString, Pos + Len(s_FindString), 1)) > 0 Then
 
        CountWords = CountWords + 1                     ' Увеличиваем счётчик
        ' Раскрашиваем найденное.
        With Me.RichTextBox1
            .SelStart = Pos - 2
            .SelLength = Len(s_FindString)
            .SelColor = RGB(255, 0, 0)
        End With
    End If
    
    StartPos = Pos + Len(s_FindString) - 1
Loop
 
Me.Text2 = CountWords

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


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

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

8   голосов , оценка 3.875 из 5
Похожие ответы