Все операторы, перечисленные в этом Приложении, поддерживаются только для совместимости с предыдущими версиями Clarion. Они подлежат полному удалению в будущих релизах Clarion и поэтому, их дальнейшее использование не предусматривается.
BOF сигнализирует о достижении начала файла во время последовательной обработки.
файл Метка объявления структуры FILE.
Процедура BOF возвращает отличное от нуля значение (“истина”), когда оператором PREVIOUS прочитана (или пропущена оператором SKIP) первая в последовательности обработки запись файла. Во всех других случаях функция возвращает ноль (“ложь”).
Процедура BOF может не поддерживаться некоторыми файловыми драйверами или быть в этих файловых система очень неэффективной. Перед ее использованием сверьтесь с документацией по данному файловому драйверу. Поэтому для гарантии эффективности и поддержки файловым драйвером рекомендуется не использовать эту процедуру. Вместо этого, проверяйте процедурой ERRORCODE() после каждого чтения с диска для попытки прочесть запись после начала файла.
Наиболее часто функция BOF используется в качестве условия в операторе LОOP UNTIL. Поскольку условие выполнения вычисляется в начале цикла, процедура BOF возвращает значение “истина” после того, как при обработке файла в обратной последовательности (используя PREVIOUS) прочитана и обработана последняя запись.
Возвращаемый тип данных:
Пример:
!Не рекомендуется, но пока поддерживается для обратной совместимости:
SET(Trn:DateKey) !
Начало/конец файла в последовательности ключаLOOP UNTIL BOF(Trans) !
Обработать файл в обратной последовательностиPREVIOUS(Trans) !
последовательно читать записиIF ERRORCODE() THEN STOP(ERROR()).
DO LastInFirstOut ! вызвать LastInFirstOut
END
!Рекомендуется как более эффективный код дл всех файловых драйверов:
SET(Trn:DateKey) !
Начало/конец файла в последовательности ключаLOOP !
Обработать файл в обратной последовательности
PREVIOUS(Trans) !
последовательно читать записиIF ERRORCODE() THEN BREAK. !Прервать цикл при попытки прочитать после начала
DO LastInFirstOut ! вызвать La
stInFirstOutEND
Смотри
также: ERRORCODE
EOF (сигнализировать о достижении конца файла)
EOF(файл)
EOF
файл Метка объявления структуры FILE.
Процедура EOF возвращает отличное от нуля значение (“истина”), когда оператором NEXT прочитана (или пропущена оператором SKIP) последняя в последовательности обработки запись файла. Во всех других случаях функция возвращает ноль (“ложь”).
Процедура EOF может не поддерживаться некоторыми файловыми драйверами или быть в этих файловых система очень неэффективной. Перед ее использованием сверьтесь с документацией по данному файловому драйверу. Поэтому для гарантии эффективности и поддержки файловым драйвером рекомендуется не использовать эту процедуру. Вместо этого, проверяйте процедурой ERRORCODE() после каждого чтения с диска для попытки прочесть запись после конца файла.
Наиболее часто функция EOF используется в качестве условия в операторе LОOP UNTIL. Поскольку условие выполнения вычисляется в начале цикла, функция EOF возвращает значение “истина” после того, как прочитана и обработана последняя запись.
Возвращаемый тип данных: LONG
Пример:
!Не рекомендуется, но пока поддерживается для обратной совместимости:
SET(Trn:DateKey) !
Начало файла в последовательности ключаLOOP UNTIL EOF
(Trans) !Обработать все записиNEXT(Trans) !
последовательно читать записиIF ERRORCODE() THEN STOP(ERROR()).
DO LastInFirstOut
! вызвать подпрограмму LastInFirstOutEND
!Рекомендуется для использования со всеми файловыми драйверами:
SET(Trn:DateKey) !
Начало файла в последовательности ключаLOOP !Обработать все записи
NEXT(Trans) !
последовательно читать записи
IF ERRORCODE() THEN BREAK. !Прервать цикл при попытки прочитать после конца файла
DO LastInFirstOut ! вызвать подпрограмму LastInFirstOutEND
Смотри также:
ERRORCODE
метка
FUNCTION [(список параметров)]локальные данные
CODE
операторы
RETURN(значение)
FUNCTION - это оператор, который определен для возврата значения( так же, как “function” в некоторых других языках программирования). Ключевое слово FUNCTION заменено выражением PROCEDURE для всех случаев и сегодня является синонимом PROCEDURE.
Пример:
PROGRAM
MAP
FullName FUNCTION(STRING Last,STRING First,<STRING Init>),STRING
!
Определение Function с параметрамиDayString FUNCTION,STRING !
Определение Function без параметровEND
TodayString STRING(3)
CODE
TodayString = DayString() !
Вызов функции без параметров! () – обязательны для функции
FullName FUNCTION(STRING Last, STRING First,STRING Init) !
Полное имя функции
CODE !
Начало кодовой секцииIF OMITTED(3) OR Init = !
Если нет среднего инициалаRETURN(CLIP(First) & & Last) !
вернуть полное имяELSE !Иначе
RETURN(CLIP(First) & & Init & . & Last) !
вернуть полное имяEND
DayString FUNCTION !
Функция день неделиReturnString STRING(9),AUTO !Неинициализированная в локальном стеке переменная
CODE !
Начало кодовой секции
RETURN(CHOOSE(TODAY()%7)+1,Sun,Mon,Tue,Wed,Thu,Fri,Sat))
Смотри также:
PROCEDURE
POINTER (получить относительное положение записи)
POINTER( | файл | )
| ключ |
POINTER
файл Метка объявления структуры FILE. Этот параметр задает физическую последовательность записей в файле.
ключ Метка объявления ключа или индекса. Задает логическую последовательность записей упорядоченную по заданному ключу или индексу.
POINTER возвращает относительное положение в файле данных (в физической последовательности файла) или относительное положение в файле ключей или индексов (в логической последовательности ключа) последней записи, к которой было обращение.
Смысл значения, возвращаемого функцией, зависит от файлового драйвера. Этот может быть номер записи, байтовое смещение в файле или некая другая разновидность “поискового” положения в файле.
Некоторыми файловыми драйверами функция POINTER не поддерживается. Поэтому ее следует использовать только, если вы знаете, что она поддерживается в используемой файловой системе и не будете заменять ее в будущем. Предпочтительный способ позиционирования на запись, который разработан для с тем расчетом, чтобы функционировать во всех файловых системах, это использование функции POSITION в сочетании с RESET и REGET.
Возвращаемый тип данных:
Пример:
SavePtr# = POINTER
(Customer) !Запомнить положение в файлеСмотри также:
POSITION
SHARE (открыть файл данных для совместного доступа)
SHARE(файл [,режим доступа])
SHARE
файл Метка структуры FILE
режим доступа Числовая константа, переменная или выражение, которая определяет уровень доступа, обуславливаемый и для пользователя, открывающего файл, и для других пользователей в многопользовательской среде. По умолчанию устанавливается значение 42h (чтение/запись + нет запрета).
Оператор SHARE открывает структуру FILE для работы и устанавливает режим доступа. Он аналогичен оператору OPEN за исключением режима доступа, используемого по умолчанию.
Режим доступа представляет собой битовую комбинацию, сообщающую операционной системе, какой уровень доступа назначить пользователю, открывающему файл, и на каком уровне установить другим пользователям ограничение в использовании файла.
Имеются следующие фактические значения для каждого уровня доступа:
Дес. Шест. Доступ
Доступ пользователя: 0 0h Только чтение
1 1h Только запись
2 2h Чтение/Запись
Доступ других: 0 0h Любой доступ (режим совместимости FCB)
16 10h Полный запрет
32 20h Запрет записи
48 30h Запрет чтения
64 40h Нет запрета
Выдаваемые сообщения об ошибках: Такие же как для OPEN.
Пример:
ReadOnly EQUATE(0) !
Метки соответствия режимов доступа
WriteOnly EQUATE(1)
ReadWrite EQUATE(2)
DenyAll EQUATE(10h)
DenyWrite EQUATE(20h)
DenyRead EQUATE(30h)
DenyNone EQUATE(40h)
CODE
SHARE(Master,ReadOnly+DenyWrite) !
Открыть в режиме “только чтение”Смотри также:
OPEN