Опубликован: 09.09.2008 | Уровень: специалист | Доступ: платный | ВУЗ: Российская международная академия туризма
Лекция 12:

Проверка вводимых данных

< Лекция 11 || Лекция 12 || Лекция 13 >
Аннотация: В лекции описан процесс создания, компиляции и подключения DLL-библиотеки. Приведен пример контроля вводимых данных, а также использования DLL-библиотеки в разрабатываемом приложении

Разработка: Приложение "Валидатор" для контроля вводимых в текстовое поле сиволов – цифра или буква.

Состав выполняемых функций:

  • Файловые операции: нет
  • Алгоритмы: проверка вводимых символов с помощью функции, класса и библиотеки
  • Информационно-справочные: нет

Наращивание функциональности не предусматривается.

Защита данных – от неквалифицированных действий пользователя.

В качестве входных данных используются символы, вводимые в контрольное текстовое поле с клавиатуры. Выходные данные программы – графическое отображение результатов в виде текстовых сообщений для 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

Размещение библиотеки (компонента) в каталоге запуска приложения

Рис. 11.1. Размещение библиотеки (компонента) в каталоге запуска приложения

Шаг 2. Создаем графический интерфейс приложения "Валидатор"

Приложение включает одну форму с двумя надписями "Введите что- нибудь" и "Проверьте наличие цифр в строке"; тектовое поле ввода и три кнопки "Функция", "Класс", "Библиотека". Примерный дизай приведен на рис. 11.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();
}
< Лекция 11 || Лекция 12 || Лекция 13 >
jo jojo
jo jojo
Нидерланды
Ярославй Грива
Ярославй Грива
Россия, г. Санкт-Петербург