Проверка вводимых данных
Разработка: Приложение "Валидатор" для контроля вводимых в текстовое поле сиволов – цифра или буква.
Состав выполняемых функций:
- Файловые операции: нет
- Алгоритмы: проверка вводимых символов с помощью функции, класса и библиотеки
- Информационно-справочные: нет
Наращивание функциональности не предусматривается.
Защита данных – от неквалифицированных действий пользователя.
В качестве входных данных используются символы, вводимые в контрольное текстовое поле с клавиатуры. Выходные данные программы – графическое отображение результатов в виде текстовых сообщений для SmartDevice
Шаг 1. Создание библиотеки контроля вводимых символов
Для создания библиотек используется специальная функциональность Visual Studio – создаем проект ClassLibrary. В нашем примере создается проект библиотеки с именем DigitValidateDLL. В проекте создается всего один класс public class Class1: System.ComponentModel.Component, в который записываем:
{// переменная (string DigitValidate) возвращаемого значения public string ReturnString(string DigitValidate) { // вычисляем длину строки int L_str=DigitValidate.Length; // цикл считывания символов из строки int i; string V_str=""; string T_str=""; for(i=0;i<L_str;i++) { V_str=V_str+i.ToString(); T_str=DigitValidate.Substring(0,i+1); // проверяем каждый символ на цифру if (!char.IsDigit(DigitValidate[i])) { return("Ошибка");} } return ("Правильно"); // возвращаем значение в вызывающую программу } }
Компилируем библиотеку. Полученный файл DigitValidateDLL.dll, следует разместить в каталоге bin\Debug нашего приложения "Валидатор" - рис.11.1
Шаг 2. Создаем графический интерфейс приложения "Валидатор"
Приложение включает одну форму с двумя надписями "Введите что- нибудь" и "Проверьте наличие цифр в строке"; тектовое поле ввода и три кнопки "Функция", "Класс", "Библиотека". Примерный дизай приведен на рис. 11.2
Шаг 3. Добавляем собственную библиотеку в проект
using System; using System.Drawing; using System.Collections; using System.Windows.Forms; using System.Data; // добавляем собственную библиотеку (Add Reference -> Project) using DigitValidateDLL;
Шаг 4. Создаем процедуру вызова библиотеки
Для кнопки "Библиотека" пишем:
private void button3_Click(object sender, System.EventArgs e) { // переменная DigitValidate уже определена в подключенной библиотеке DigitValidate =this.textBox1.Text; // создаем ссылочную переменную DVL для точки входа Class1 DigitValidateDLL.Class1 DVL=new DigitValidateDLL.Class1(); // задаем исходное значение для одноименной переменной библиотеки if (DVL.ReturnString(DigitValidate) = = "Ошибка") { MessageBox.Show("Введите цифру","Библиотека проверки цифр в строке"); } else { MessageBox.Show("Все символы в строке - цифры!", "Библиотека проверки цифр в строке");} }
Шаг 5. Создаем процедуру проверки символов
private void button1_Click(object sender, System.EventArgs e) { DigitValidate =this.textBox1.Text; // вычисляем длину строки int L_str=DigitValidate.Length; // цикл считывания символов из строки int i; string V_str=""; string T_str=""; for(i=0;i<L_str;i++) { V_str=V_str+i.ToString(); T_str=DigitValidate.Substring(0,i+1); // проверяем каждый символ на цифру if (!char.IsDigit(DigitValidate[i])) { MessageBox.Show(T_str+"\n"+ i.ToString()+"-й символ не цифра!","Ошибка"); return;} } MessageBox.Show("Длина строки -"+L_str.ToString()+" знаков,\n"+ "Номера символов в строке "+V_str+"\n"+ T_str+"\n"+ "Все символы в строке - цифры!","Функция проверки цифр в строке"); }
Шаг 6. Создаем класс ClassDigitValidate.cs проверки символов в строке
Хотя код в значительной степени совпадает с кодом процедуры кнопки и библиотеки, код приводим полностью:
using System; // добавляем для вывода MessageBox using System.Windows.Forms; namespace SmartCS_22 // пространство имен { public class ClassDigitValidate { // меняем public ClassDigitValidate() на public static void ClassDigit() {//Передаем значение из класса Form1 в переменную string DigitValidate=Form1.DigitValidate; // теперь копируем функцию из класса Form1 // вычисляем длину строки int L_str=DigitValidate.Length; // цикл считывания символов из строки int i; string V_str=""; string T_str=""; for(i=0;i<L_str;i++) { V_str=V_str+i.ToString(); T_str=DigitValidate.Substring(0,i+1); // проверяем каждый символ на цифру if (!char.IsDigit(DigitValidate[i])) { MessageBox.Show(T_str+"\n"+ i.ToString()+"-й символ не цифра!","Ошибка"); return;} } MessageBox.Show("Длина строки -"+L_str.ToString()+" знаков,\n"+ "Номера символов в строке "+V_str+"\n"+ T_str+"\n"+ "Все символы в строке - цифры!","Класс проверки цифр в строке"); } } }
Шаг 7. Создаем процедуру вызова класса
private void button2_Click(object sender, System.EventArgs e) { DigitValidate =this.textBox1.Text; // при правильном коде класса будет подсказка вызова ClassDigitValidate.ClassDigit(); }
Шаг 8. Выход из программы
private void button4_Click_1(object sender, System.EventArgs e) { Application.Exit(); }