Студопедия

КАТЕГОРИИ:

АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника


Примечание. В цикле применен еще один прием — нижнее граничное значение задается с помощью функ­ции Len, которая возвращает длину текстового фрагмента




В цикле применен еще один прием — нижнее граничное значение задается с помощью функ­ции Len, которая возвращает длину текстового фрагмента. Другими словами, если номер кре­дитной карты состоит из 11 цифр, этот код выполняется 11 раз (один раз для каждой цифры).

 

■ В строках 8—9 извлекается цифра в текущей позиции, на которую указывает счетчик цикла. Функция Mid позволяет вырезать одну цифру.

■ В строке 10 проверяется, находится ли полученная цифра в четной или нечетной позиции, считая от конца номера.

Строки 11—17 выполняются, только если позиция цифры не кратна двум, считая от конца номера. В этом случае ее следует удвоить (строка 11). Если получилось двузначное число, его цифры нужно сложить (строки 13—15).

■ В строке 19 текущее число добавляется к промежуточному итогу. Если вы находитесь в четной позиции, число не менялось. Если вы в нечетной позиции, число было удвоено и скомбинировано.

■ В строке 20 гарантируется переход из четной позиции в нечетную позицию (и обратно).

■ В строке 21 выполняется переход к строке 6 и повторение цикла для следующей цифры в номере кредитной карты.

■ В строках 22—26 проверяется окончательный итог. Если он кратен 10, номер допустимый. Для проверки применяется операция Mod, выполняющая деление и извлекающая остаток от деления нацело (Если остатка нет при делении числа на 10, вы знаете, что оно без проблем делится нацело.)

Может потребоваться некоторое время для того, чтобы разобраться в работе функции от начала до конца и выяснить точно, что происходит, но в конце концов все это относится к основным элементам языка VB, таким как условия, циклы и переменные. Если вы действи­тельно хотите изучить данный пример, его можно посмотреть в действии с помощью средств отладки.

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


Далее приведен пример, реагирующий на ввод данных кредитной карты в текстовое по­ле, названное CardNumber:

Private Sub CardNumber_BeforeUpdate(Cancel As Integer)

If ValidateCard(CardNuraber) Then

MsgBox "Your card is valid," Else.

MsgBox "Your card is invalid. " & _

"Did you forget a number, or are you trying to cheat us?" Cancel = True

End If

End Sub

Для проверки выполните приведенный код и введите один из номеров ваших кредитных карт в поле CardNumber, как показано на рис. 17.3.

 
 

Рис. 17.3.Эта форма демонстрирует работу функции Validate Card в форме AddCreditCard(вставка кредитной карты) из БД Boutique Fudge . Когда бы ни менялось поле CardNumber,процедура проверяет его допустимость и отменяет изменения, если значение не приемлемо

 

 


Поделиться:

Дата добавления: 2014-11-13; просмотров: 83; Мы поможем в написании вашей работы!; Нарушение авторских прав





lektsii.com - Лекции.Ком - 2014-2024 год. (0.005 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав
Главная страница Случайная страница Контакты