Информационый портал Windows 7

У нас вы можете скачать драйвера и программы, найти красивые темы и обои, учебные материалы, а также получить консультации и многое другое.

  • главная
  • контакты
  • карта сайта
 
Программирование » Уроки по C# для начинающих »

Урок 4. Работа со строковыми переменными на примере разбора команд консоли в языке C#.

 

   У меня не было программы, которая обошлась бы без, хотя бы парочки, текстовых переменных.

   Особенно когда начал писать программы типа Windows Form.

   Любые данные, вводимые пользователем через поле типа TextBox, являются текстовыми. Естественно, разбор этих данных – задача программиста.

   Конечно, пользователь может ввести какое-то неверное значение. И мы должны позаботиться о том, чтобы наша программа обрабатывала подобные исключения сама, без экстренного закрытия приложения. Поэтому прежде, чем познакомится с данной статьёй, рекомендую прочитать приложение, в котором рассказывается об обработке исключений в языке C#.

   Теперь продолжим писать программу. В прошлом уроке, мы остановились на том, что позволили пользователю менять цвет текста консоли.

   Но если пользователь введёт цвет в неверном формате, программа выдаст ошибку, приводящую к аварийному закрытию приложения.

   В этом случае нам придётся разобрать, что же ввёл пользователь.

   Обратимся к рис. 4.1.

Урок 4. Работа со строковыми переменными на примере разбора команд консоли в языке C#.

Рис. 4.1. Разбор команды, введённой пользователем.


   Для начала подумаем, что будет, если пользователь введёт отрицательное число. Скорее всего, программа выдаст ошибку, потому что цвет должен быть положительным (0-255).

   Поэтому, позаботимся о том, чтобы этого не произошло:
strKeys=strKeys.Replace("-", "0");

   Функция Replace(символ1,символ2) меняет символ1 на символ2 для всех вхождений символа символ1 в строку strKeys.

   Например, если пользователь введёт -255, функция заменит "-" на "0" и получится 0255.

   Далее идёт обработка данных, в процессе которой может произойти ошибка, связанная с неверно введённым значением
if (strKeys.IndexOf(",") < 0) ConsoleKeyEnter_Console_Zvet_Texta(strKeys);

   то есть если символ "," не был введён пользователем (тогда IndexOf возвращает значение -1), мы передаём управление функции ConsoleKeyEnter_Console_Zvet_Texta(strKeys), которая разбирает стандартные команды (рис. 4.2).

Урок 4. Работа со строковыми переменными на примере разбора команд консоли в языке C#.

Рис. 4.2. Функция ConsoleKeyEnter_Console_Zvet_Texta.


   Естественно, эти команды видны пользователю, когда он начинает писать их название (см. предыдущие уроки).

   Далее, если пользователь ввёл хотя бы одну запятую, начинаем разбирать, сколько же запятых было введено. Для цвета в формате ARGB должно быть не более трёх запятых:
for (int i = 0; i < 3; i++)

   введём переменную, которая хранит в себе позицию символа "," в строке:
int iKeys = strKeys.IndexOf(",");

   дальше, если одна из запятых не была введена, мы ничего не делаем:
if (iKeys < 0) { }

   в итоге при дальнейшей обработке происходит ошибка, и программа передаёт управление блоку catch. Если же позиция запятой в новой строке равна нулю (пользователь не ввёл число), тогда определяем компоненту цвета, в зависимости от значения i:
else
   if (iKeys == 0)
   {
      switch (i)
      {
         case 0:
         {
            arrstrZvet[i] = textBoxConsole.ForeColor.A.ToString();
            strKeys = strKeys.Substring(iKeys + 1);
         } break;
         case 1:
         {
            arrstrZvet[i] = textBoxConsole.ForeColor.R.ToString();
            strKeys = strKeys.Substring(iKeys + 1);
         } break;
         default:
         {
            arrstrZvet[i] = textBoxConsole.ForeColor.G.ToString();
            strKeys = strKeys.Substring(iKeys + 1);
         } break;
      }
   }

   После определения компоненты цвета, мы укорачиваем строку для удобства поиска:
strKeys = strKeys.Substring(iKeys + 1)

   функция Substring(позиция,количество символов) извлекает подстроку указанной длины, начиная с указанной позиции. Если длина не указана, читает все символы с указанной позиции до конца строки.

   Естественно, что после третьей запятой больше запятых быть не должно:
if (strKeys.Length > 1)
   arrstrZvet[3] = strKeys;
else arrstrZvet[3] = textBoxConsole.ForeColor.B.ToString();

   Если в результате выполнения этого кода, произошла ошибка, пользователю будет выведено сообщение:
textBoxConsole.Text = "Вы ввели неверную команду" + NewLine + "Запишите цвет в формате ARGB(альфа, красный, зелёный, синий)" + NewLine + "или введите одну из стандартных команд" + NewLine;

   По аналогии, записывается возможность изменения пользователем цвета фона.

   Результат работы программы представлен на рис. 4.3.

Урок 4. Работа со строковыми переменными на примере разбора команд консоли в языке C#.

Рис. 4.3. Результат работы программы.


   Как видно из рисунка, я написал: (,,255,), то есть изменил только значение зелёной компоненты цвета.

   Более подробно о функциях для работы с текстовыми переменными можно прочитать здесь.



    Скачать исходники можно здесь:Вы не можете скачивать файлы с нашего сервера.





     Жду отзывов и предложений


     К списку статей          Предыдущий урок          Следующий урок



     DiamondTigeR

     
Урок 4. Работа со строковыми переменными на примере разбора команд консоли в языке C#.



Автор: d.tiger. Дата: 28-01-2012, 17:07

Просмотров: 15030

В избранное:

Уважаемый посетитель, для доступа к ресурсам сайта OS-7.RU, а также для скачивания материалов - Вам необходимо зарегистрироваться либо войти под своим именем.







 (голосов: 0)
Комментарии (0) Распечатать