В заданной строке, состоящей из "слов", разделенных пробелами, определить количество "слов" - 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
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д