Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Практическая часть. Пример №1. Определить количество слов в строке, разделенных пробелами. ⇐ ПредыдущаяСтр 2 из 2
Пример №1. Определить количество слов в строке, разделенных пробелами.
Private Sub Command1_Click() s = Split(Text1, " ") ' Слова разделяются пробелами s1$ = " " ' n - дает верхнюю границу массива, n- Количество слов n% = UBound(s) For i% = 0 To n s1 = s1 & s(i) & vbCrLf Next Text2 = s1 & n + 1 End Sub Private Sub Command2_Click() End End Sub Private Sub Form_Load() Text1 = " " Text2 = " " End Sub
Пример №2. Дана строка. Поменять местами первый и последний символы каждого слова. Слова разделены пробелами.
DefStr V Private Sub Command1_Click() s = Split(Text1, " ") v1 = " ": v2 = " ": v3 = " ": v4 = " ": v5 = " " n% = UBound(s) ' n - дает верхнюю границу массива For i% = 0 To n 'количество слов r = s(i) v1 = Left(r, 1) v2 = Right(r, 1) v3 = Replace(r, v1, v2, 1, 1) v4 = Left(v3, Len(v3) - 1) v5 = v5 & v4 & v1 & vbCrLf Next Text2 = v5 & n + 1 End Sub Private Sub Command2_Click() End End Sub Private Sub Form_Load() Text1 = " ": Text2 = " " End Sub
Пример №3. Подсчитать количество слов, разделенных множеством разделителей: пробелами, запятыми или точками.
Option Base 1 Dim ss(10) As String ‘ Описан массив из 10 слов Private Sub Command1_Click() s$ = Text1 s = LTrim(s) k% = Len(s) n% = 1 ' номер слова ss(n) = " " For i% = 1 To k s1$ = Mid(s, i, 1) If s1 = " " Or s1 = ", " Or s1 = "." Then s1 = Mid(s, i + 1, 1) 'Проверяем следующий символ, если он не окажется символом разделителем, ' то переходим к следующему слову If Not (s1 = " " Or s1 = ", " Or s1 = ".") And (i < > k) Then n = n + 1 'And (i < > k) - если в конце строки запятая, то ss(n) = " " ' счетчик числа слов не будет увеличиваться End If ' Если второй и последующие символы являются разделителями, ' то ничего не делать во внутреннем IF Else ss(n) = ss(n) & s1 End If Next i st$ = " " 'Печать слов For i = 1 To n st = st & ss(i) & vbCrLf Next Text2 = st & n End Sub Private Sub Command2_Click() End End Sub Private Sub Form_Load() Text1 = " ": Text2 = " " End Sub
Пример №4. Заменить в строке все символы % на $ и наоборот.
Option Base 1 Dim ss() As String * 1 'Описан массив, длиной компоненты в 1 символ Private Sub Command1_Click() s$ = Text1 k% = Len(s) ReDim ss(k) For i% = 1 To k s1$ = Mid(s, i, 1) ss(i) = s1 Next For i% = 1 To k If ss(i) = " %" Then ss(i) = " $" ElseIf ss(i) = " $" Then ss(i) = " %" End If Next s1 = " " For i% = 1 To k s1 = s1 & ss(i) Next Text2 = s1 End Sub Private Sub Command2_Click() End End Sub Private Sub Form_Load() Text1 = " ": Text2 = " " End Sub
Пример №5. Подсчитать количество слов «Саша» в строке.
Private Sub Command1_Click() k% = 1 'указатель поиска n% = 0 'счетчик слов S$ = Text1 Do k = InStr(k, S, " Саша") 'определить позиция слова в строке If k < > 0 Then k = k + Len(" Саша") 'передвинуть указатель поиска n = n + 1 'подсчитать это слово End If Loop Until k = 0 Text2.Text = n End Sub Private Sub Command2_Click() End End Sub Private Sub Form_Load() Text1 = " ": Text2 = " " End Sub
Пример №6. Удалить из строки все русские буквы «о».
Private Sub Command1_Click() s$ = Text1 ss$ = " " k% = Len(s) j = 1 Do While j < = k st = Mid(s, j, 1) If st = " о" Then d1$ = Mid(s, 1, j - 1) d2$ = Mid(s, j + 1, k) s = d1 & d2 k = k - 1 End If st = Mid(s, j, 1) If st = " о" Then j = j - 1 j = j + 1 Loop Text2 = s End Sub Private Sub Command2_Click() End End Sub Private Sub Form_Load() Text1 = " ": Text2 = " " End Sub
Пример №7. Подсчитать, какое количество каждой буквы русского алфавита находится в строке.
Private Sub Command1_Click() Dim a(192 To 255) As Byte Dim ch As String * 1 For i% = 192 To 255 a(i) = 0 Next s$ = Text1 k% = Len(s) For i = 1 To k ch = Mid(s, i, 1) If ch > = Chr(192) And ch < = Chr(255) Then a(Asc(ch)) = a(Asc(ch)) + 1 End If Next s = " " For i = 192 To 255 If a(i) < > 0 Then s = s & Chr(i) & vbTab & a(i) & vbCrLf End If Next Text2 = s End Sub Private Sub Command2_Click() End End Sub Private Sub Form_Load() Text1 = " ": Text2 = " " End Sub
Пример №8. Отсортировать строку по алфавиту.
DefStr S 'm - указатель на символ в строке для перестановки Dim m As Integer Dim n As String * 1
Private Sub Command1_Click() s$ = Text1 k% = Len(s) For i% = 1 To k - 1 m = i For j% = i + 1 To k If Mid(s, j, 1) < Mid(s, m, 1) Then m = j Next j n = Mid(s, i, 1) s1 = Left(s, i - 1) s = Replace(s, Mid(s, i, 1), Mid(s, m, 1), i, 1) s = s1 + s s2 = Left(s, m - 1) s = Replace(s, Mid(s, m, 1), n, m, 1) s = s2 + s Next i Text2 = s End Sub Private Sub Form_Load() Text1 = " ": Text2 = " " End Sub
Пример №9. Подсчитать сколько раз в текстовом файле встречаются русские буквы «а» и «А». Дописать полученное число в конец проверяемого файла.
Private Sub Command1_Click() Dim s As String n% = 0 Open " C: \Мои документы\Массивы.txt" For Input As #1 Do Line Input #1, s k = Len(s) For i% = 1 To k y$ = Mid(s, i, 1) If UCase(y) = " А" Then n = n + 1 Next Loop Until EOF(1) Text1 = n Close #1 Open " C: \Мои документы\Массивы.txt" For Append As #1 Write #1, n Close #1 End Sub Private Sub Form_Load() Text1 = " " End Sub
Пример №10. Прочитать содержимое файла в текстовое поле. Заменить в каждой строке слова «размера» на слова «порядка» и записать в новый файл.
Private Sub Command1_Click() Open " C: \Мои документы\Массивы.txt" For Input As #1 Open " C: \Мои документы\Result.txt" For Output As #2 Text1 = Input(LOF(1), 1) s$ = Replace(Text1, " размера", " порядка") s1$ = StrReverse(s) ' перевернуть текст и вывести в поле Print #2, s Text2 = s1 Close End Sub
|