Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Практическая часть. Пример №1. Определить количество слов в строке, разделенных пробелами.






 

Пример №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

 






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.