Распечатать страницу

Операции отношения в VFP

« Назад

Приведены в табл. 3.22.

Таблица 3.22

Операции отношения

Операция

Описание

Приме

Меньше

? 23 < 54

Больше

? 1 > 2

=

Равно

? cVar1 = cVar2

<>, #, !=

Не равно

? .T. != .F.

<=

Меньше или равно

? {^1998-02-16} <= {^1998-02-16}

>=

Больше или равно

? 32 >= nHisAge

==

Точное равенство (употребляется преимущественно со строками)

? status == "Open"

Операндами операций отношения могут быть данные любого типа. При этом операнды одной операции должны иметь одинаковый тип, например:

? 1 > 2                                 && Напечатает: .F.

? 1 > "a"                              && Это ошибка

При обнаружении в операции операндов разного типа генерируется ошибка "Operator/operand mismatch".

При сравнении символьных данных на результат операции влияет установка команды SET EXACT (детали см. в описании команды). Исключение составляет операция "==": выражение с этой операцией и символьными операндами вернет .T., если оба операнда имеют одинаковую длину и содержат в каждой позиции одинаковые символы, например:

? 'abc' == 'abc'                    && Напечатает: .T.

&& Включаем концевые пробелы

? 'abc   ' == 'abc'                 && Напечатает: .F.

? 'abc' == 'abc   '                 && Напечатает: .F.

Замечание. Логическое выражение, например следующее:

varX >= 2 and varX =< 5

и любое ему подобное можно заменить функцией Between( ):

Between(varX, 2, 5)