Public Sub Подсчёт()
Dim row As String 'Ряд, который мы анализируем
row = "Задача такая: написать приложение которое подсчитывает количество символов и пробелов в заданном ряде."
MsgBox Count(row, "а") 'Количество букв "а" в анализируемом ряде
MsgBox Count(row, " ") 'Количество пробелов в анализируемом ряде
End Sub
Public Function Count(str As String, spl As String) As Integer
Count = Len(str) - Len(Replace(str, spl, ""))
End Function
Dim b(255)
Private Sub Form_Load()
'Первая часть считает общее количество символов и пробелов
a$ = InputBox("Введите текст для анализа")
i = 0
j = 0
For k = 1 To Len(a$)
If Mid$(a$, k, 1) <> " " Then i = i + 1 Else j = j + 1
Next
MsgBox ("Количество пробелов = " & j)
MsgBox ("Количество остальных символов = " & i)
'Вторая часть считает количество разных символов. Результаты выводит в файл.
For k = 1 To Len(a$)
b(Asc(Mid$(a$, k, 1))) = b(Asc(Mid$(a$, k, 1))) + 1
Next
Open "c:\output.txt" For Output As #1
For k = 1 To 255
If b(k) <> 0 Then
Print #1, Chr$(k) & "=" & b(k)
End If
Next
Close
End
End Sub
Oxygen писал(а):
- Код: Выделить всё
MsgBox ("Количество пробелов = " & j)
MsgBox ("Количество остальных символов = " & i)
Nicky писал(а):Oxygen писал(а):
- Код: Выделить всё
MsgBox ("Количество пробелов = " & j)
MsgBox ("Количество остальных символов = " & i)
Количество пробелов + Количество остальных символов = Длина строки => можно считать что-то одно
Oxygen писал(а):В производительности разницы особо никакой нету. А это для особо одаренных.
Dim arr() as String
Dim ProbelCount as Long
arr=split(LongString," ")
ProbelCount=iif(Ubound(arr)>0,Ubound(arr),0)
s = Replace(MyString," ","")
Debug.Print "Пробелов: " & Len(MyString)-Len(s)
Debug.Print "Других символов: " & Len(s)
Andrey Fedorov писал(а):Я. конечно не пробовал, но:
- Код: Выделить всё
s = Replace(MyString," ","")
Debug.Print "Пробелов: " & Len(MyString)-Len(s)
Debug.Print "Других символов: " & Len(s)
Ась?
Nicky писал(а):По плавному кругу вернулись ко второму посту
Oxygen писал(а):В начале нужно нажать "генерировать файл", когда появится сообщение, что файл сгенерирован, то нажать "тест".
Oxygen писал(а):За сколько пройден тест, не считается, но разница очень сильно заметна.
Private Sub Remark(ByVal rtb As RichTextBox, ByVal simvol As String)
Dim text1 As String = rtb.Text, s$
Static i As Integer, flg As Boolean
If flg = False Then i = rtb.Find(simvol)
s$ = Mid$(text1, i + 1, 1)
If s$ = simvol Then
rtb.SelectionStart = i
Do
i += 1
Application.DoEvents()
Loop Until (Mid$(text1, i + 1, 1) = vbCr)
Application.DoEvents()
rtb.SelectionLength = i
rtb.SelectionColor = Color.Green
If i <> text1.Length Then Call Remark(rtb, simvol)
flg = True
End If
End Sub
Option Explicit
'Option Base 0
'Option Compare Binary
Private Sub Form_Activate()
Dim intPos(0 To 1) As Integer
intPos(0) = 1: intPos(1) = 1
Do
intPos(0) = InStr(intPos(1), rtbMain.Text, "Ш")
If intPos(0) = 0 Then Exit Do
intPos(1) = InStr(intPos(0), rtbMain.Text, vbCr)
If intPos(1) = 0 Then Exit Do
With rtbMain
.SelStart = intPos(0) - 1
.SelLength = intPos(1) - intPos(0)
.SelColor = vbBlue
End With
Loop
End Sub
Private Sub Form_Load()
rtbMain.Text = "Шнпрвлалмьирпалплатвлбвдптрьвлпрлдватплдва" & vbCrLf & _
"оаоаолдаопладопоподШвадлвоадов" & vbCrLf & _
"волоалвоалвоал" & vbCrLf & _
"воапдлвыопдлывопдлоШвпаьвлдыоп" & vbCrLf & _
"выпловаыдлпоавлдгполдоав"
End Sub
Private Sub Remark(ByVal rtbMain As RichTextBox)
Dim intPos(0 To 1) As Integer
intPos(0) = 1 : intPos(1) = 1
Do
intPos(0) = InStr(intPos(1), rtbMain.Text, "'")
If intPos(0) = 0 Then Exit Do
intPos(1) = InStr(intPos(0), rtbMain.Text, vbCr)
If intPos(1) = 0 Then Exit Do
With rtbMain
.SelectionStart = intPos(0) - 1
.SelectionLength = intPos(1) - intPos(0)
.SelectionColor = Color.Green
End With
Loop
End Sub
Private Sub Command1_Click()
a$ = RTB1.Text + vbCr
b = 0
i1 = 0: i2 = 0: j1 = 1
Do
i1 = InStr(j1, a$, "Ш")
If i1 = 0 Then b = 1: GoTo 10
i2 = InStr(i1, a$, vbCr)
RTB1.SelStart = i1 - 1: RTB1.SelLength = i2 - i1: RTB1.SelColor = vbBlue j1 = i2
10:
Loop Until (b = 1)
End Sub
Сейчас этот форум просматривают: AhrefsBot, Google-бот, Mail.ru [бот], Yandex-бот и гости: 50