Все слова, длиной более пяти символов, начинать с прописной буквы - VBA
Формулировка задачи:
Добрый день!
Требуется написать программу в VBA: Дан текст, слова которого отделяются друг от друга пробелами. Вывести исходный текст, таким образом, чтобы все слова, длиной более пяти символов, начинались бы с прописной буквы.
Я написал, но у меня выходит что все слова выводит с прописной буквы, как изменить мой код-формирование строки вывода (именно изменит мой) чтоб только слова длинной более 5 выводило с прописной ?
Листинг программы
- Private Sub CommandButton1_Click()
- Dim str, str1 As String
- Const N = 100
- Dim M(N) As String
- Dim str_v As String
- str = TextBox1.Value
- 'Просмотр всех символов строки
- j = 1
- str = LTrim(str) ' удалить начальные пробелы из строки
- For i = 1 To Len(str)
- If Mid(str, i, 1) <> " " Then
- M(j) = M(j) + Mid(str, i, 1)
- Else
- ' если слова отделены между собой несколькими пробелами то пропустить эту последовательность
- While Mid(str, i + 1, 1) = " "
- i = i + 1
- Wend
- ' подсчитывать слова только если за последовательностью пробелов следует слово
- If Mid(str, i + 1, 1) <> "" Then
- j = j + 1
- End If
- End If
- Next i
- ' Формирование строки для вывода
- For i = 1 To j
- str_v = str_v & StrConv(M(i), vbProperCase) & " "
- Next i
- TextBox2.Value = str_v
- End Sub
- Private Sub TextBox1_Change()
- End Sub
Решение задачи: «Все слова, длиной более пяти символов, начинать с прописной буквы»
textual
Листинг программы
- Private Sub CommandButton1_Click()
- Dim sp
- Dim str, str1 As String
- Const N = 100
- Dim M(N) As String
- Dim str_v As String
- str = TextBox1.Value
- 'Просмотр всех символов строки
- j = 1
- str = LTrim(str) ' удалить начальные пробелы из строки
- For i = 1 To Len(str)
- If Mid(str, i, 1) <> " " Then
- M(j) = M(j) + Mid(str, i, 1)
- Else
- ' если слова отделены между собой несколькими пробелами то пропустить эту последовательность
- While Mid(str, i + 1, 1) = " "
- i = i + 1
- Wend
- ' подсчитывать слова только если за последовательностью пробелов следует слово
- If Mid(str, i + 1, 1) <> "" Then
- j = j + 1
- End If
- End If
- Next i
- ' Формирование строки для вывода
- sp = Split(TextBox1.Value, "")
- For j = 0 To UBound(sp)
- If Len(Replace(sp(j), ",", "")) > 5 Then 'если длина строки без запятых больше 5 символов то
- sp(j) = UCase(Left(sp(j), 1)) & Right(sp(j), Len(sp(j)) - 1) 'делаем первую букву прописной
- End If
- Next
- TextBox2.Value = Join(sp, " ")
- End Sub
- Private Sub TextBox1_Change()
- End Sub
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д