Совсем недавно я рассказал вам о методах типа данных Char в языке Visual Basic.NET. Чтобы закрепить этот материал (так как я совсем скоро буду писать программку на эту тему) я решил сделать маленькое практическое задание – написать программку, которая будет анализировать введенный текст. Правда, задумывалась у меня большая программа, но я ее немного урезал, потом поймете почему так получилось.
В общем, что сейчас умеет делать программа: она может анализировать небольшие тексты (этот недостаток устраним) по следующим пяти критериям:
- Подсчет количества слов
- Подсчет количества алфавитных букв
- Подсчет количества цифр
- Подсчет количества знаков пунктуации
- Подсчет количества знаков-разделителей
Вот такие вот не очень полезные действия она может выполнять. Но – все-таки я решил сделать эту программу, чтобы полностью понять, как что делать с символами. Вообще – у меня есть идея доработать это приложение (устранить все его недостатки и добавить функциональности). Думаю, что в ближайшее время можно будет этим заняться. Но пока – она реализует только эти пять функции, и то – немного в убогом виде (например – если вы поставите два пробела в анализируемом тексте – то программа посчитает, что у вас появилось еще одно дополнительное слово). К тому же – знаки пунктуации считаются словами =(
Интерфейс программы очень просто:
Как я уже сказал – у меня для ввода текста стоит просто TextBox, у которого свойству MultiLine присвоено значение True (чтобы можно было растягивать и по ширине). Все основное действие происходит при нажатии на кнопку «Анализировать». Я не стал менять названия элементов управления, так что можете копировать код прям так, как есть:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim KolSlov, KolBukv, KolCivr, KolPunct, KolRazd, Leng, i As Integer
Dim Txt As String = LTrim(RTrim(TextBox1.Text))
Leng = Txt.Length
i = 0
Do
'1
If Char.IsWhiteSpace(Txt(i)) Then
KolSlov += 1 'Кол-во слов
End If
'2
If Char.IsLetter(Txt(i)) Then
KolBukv += 1 'Кол-во алфавитных букв
End If
'3
If Char.IsDigit(Txt(i)) Then
KolCivr += 1 'Кол-во цифр
End If
'4
If Char.IsPunctuation(Txt(i)) Then
KolPunct += 1 'Кол-во знаков пунктуации
End If
'5
If Char.IsSeparator(Txt(i)) Then
KolRazd += 1 'Кол-во знаков-разделителей
End If
i += 1
Loop Until i = Leng
MsgBox("Кол-во слов: " + (KolSlov + 1).ToString + " Кол-во алфавитных букв: " + (KolBukv).ToString + " Кол-во цифр: " + KolCivr.ToString + " Кол-во знаков пункуации: " + KolPunct.ToString + " Кол-во знаков-разделителей: " + KolRazd.ToString)
End Sub
И немного комментариев по тексту программы. LTrim(RTrim(TextBox1.Text)) – таким образом я вырезаю все пробелы до и после начала текста. TextBox1.Text.Length – это длина строки, через некоторое время я расскажу про тип данных String, там мы подробнее с этим познакомимся. += - это аналогично конструкции: переменная = переменная + 1. Программу многофункциональной сделать не удалось потому, что хотел поменьше использовать еще не известные моим читателям функции. В дальнейшем – мы с ними познакомимся. Посмотрим, что у меня получилось:
Вот такие вот результаты. Конечно, программа не очень (пока) полезна. Я работал над ней только для того, чтобы получше научиться управляться с символами (то есть – с типом Char). Так что имейте это ввиду. А сейчас я пойду почитаю и посмотрю видео про высокотехнологичный планшетник LG Optimus Pad, думаю, найду много интересного для себя, может даже куплю ;)
Комментариев нет:
Отправить комментарий