Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
УчебноеПособие по VB_6.doc
Скачиваний:
57
Добавлен:
24.12.2018
Размер:
3.17 Mб
Скачать

6.2.4. Закрепление материала

  1. В чем состоит отличие файла прямого доступа от файлов последовательного доступа?

  2. Приведите синтаксис команды для открытия файла прямого доступа.

  3. Как записать данные в файл прямого доступа?

  4. Как прочитать данные из файла прямого доступа?

  5. Как объявить переменную пользовательского типа?

  6. Назовите команды для работы с файлами?

  7. Перечислите функции, используемые для работы с файлами.

Задание для самостоятельной работы

Разработайте форму и создайте базу данных для учета успеваемости студентов с использованием файла прямого доступа.

7. Проверка и обработка пользовательского

ввода. Обработка ошибок

7.1. Проверка и обработка пользовательского ввода

7.1.1. Контроль ввода

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

Существует два способа контроля вводимых данных:

  • на уровне формы - данные проверяются после того, как заполнены все поля на форме;

  • на уровне полей - данные проверяются после заполнения каждого поля.

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

If Not IsNumeric(txtZipCode.Text) Then

Beep  звуковой сигнал

StatusBar1. Panels("ErrorDescription").Text= " код _

должен быть числовой "

End If.

При контроле на уровне формы на экран желательно выводить форму с сообщением о всех обнаруженных ошибках.

После обнаружения ошибки фокус должен быть установлен на поле, содержащем ошибку. Если несколько полей формы содержит ошибку, то фокус надо установить на первое поле по порядку ввода данных (меньшее значение свойства TabIndex).

Установку фокуса можно выполнить программно с помощью метода SetFocus:

txtZipCode.SetFocus

Для контроля ввода на уровне полей может использоваться событие потери фокуса LostFocus:

Private Sub txtZipCode_LostFocus ( )

If Not IsNumeric (txtZipCode.Text) Then

MsgBox " код должен быть числовой "

txtZipCode.SetFocus

End If.

End Sub.

Недостатком этого метода может быть опасность войти в бесконечный цикл.

7.1.2. Реализация проверки данных на уровне формы Обработчик клавиатуры на уровне формы

Обработчик клавиатуры - это более совершенный вариант проверки данных на уровне формы. При наличии единого обработчика клавиатуры можно управлять вводом данных в любые поля на форме.

Для реализации обработчика необходимо использовать события, связанные с клавиатурой. Можно задействовать три основных события: KeyPress, KeyDown и KeyUp. (См. 1.2.2).

Использование события KeyPress

Это событие возникает, когда пользователь нажимает клавишу, у которой имеется свой ASCII-код. К таким клавишам относятся все алфавитно-цифровые клавиши и ряд управляющих, например Enter (код 13), Backspace (код 8). Событие KeyPress не генерируется при нажатии функциональных и других специальных клавиш.

Событие KeyPress удобно для перехвата клавиш, нажимаемых при вводе в поля TextBox и ComboBox. Событие KeyPress предоставляет аргумент KeyASCII, в котором содержится код нажатой клавиши. Если нужно запретить ввод любых данных, кроме числовых, можно проверять этот аргумент в обработчике события KeyPress.