вторник, 15 февраля 2011 г.

Char. Практика


Совсем недавно я рассказал вам о методах типа данных Char в языке Visual Basic.NET. Чтобы закрепить этот материал (так как я совсем скоро буду писать программку на эту тему) я решил сделать маленькое практическое задание – написать программку, которая будет анализировать введенный текст. Правда, задумывалась у меня большая программа, но я ее немного урезал, потом поймете почему так получилось.

В общем, что сейчас умеет делать программа: она может анализировать небольшие тексты (этот недостаток устраним) по следующим пяти критериям:
  1. Подсчет количества слов
  2. Подсчет количества алфавитных букв
  3. Подсчет количества цифр
  4. Подсчет количества знаков пунктуации
  5. Подсчет количества знаков-разделителей
Вот такие вот не очень полезные действия она может выполнять. Но – все-таки я решил сделать эту программу, чтобы полностью понять, как что делать с символами. Вообще – у меня есть идея доработать это приложение (устранить все его недостатки и добавить функциональности). Думаю, что в ближайшее время можно будет этим заняться. Но пока – она реализует только эти пять функции, и то – немного в убогом виде (например – если вы поставите два пробела в анализируемом тексте – то программа посчитает, что у вас появилось еще одно дополнительное слово). К тому же – знаки пунктуации считаются словами =(

Интерфейс программы очень просто:


Как я уже сказал – у меня для ввода текста стоит просто 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, думаю, найду много интересного для себя, может даже куплю ;)

Комментариев нет:

Отправить комментарий