RESET (сброс указателя текущей записи)
RESET(последовательность,строка)
последовательность | Метка файла, ключа или индекса. |
строка | Строка, возвращаемая функцией POSITION. |
RESET устанавливает указатель записи на запись, задаваемую строкой, возвращаемой функцией POSITION. После того, как RESET установил указатель, NEXT или PREVIOUS могут считать эту запись.
Значение, содержащееся в СТРОКЕ, и его длина зависят от файлового драйвера. RESET, обычно, используется вместе с POSITION для временного изменения порядка обработки записей.
Пример:
RecordQue QUEUE,PRE(Dsp)
QueFields LIKE(Trn:Record),PRE(Dsp)
.
SavPosition STRING(260)
CODE
SET(Trn:DateKey) !Top of file in keyed sequence
LOOP !Последовательно читаем
NEXT(Trans) ! записи, одну за другой
IF ERRORCODE() THEN STOP(ERROR()).
RecordQue = Trn:Record !Помещаем запись в очередь
ADD(RecordQue) !
IF ERRORCODE() THEN STOP(ERROR()).
IF RECORDS(RecordQue) >= 20 OR EOF(Trans)
!В очереди 20 записей?
SavPosition = POSITION(Trn:DateKey) !сохраним указатель
!на текущую запись
DO DisplayQue !Выведем очередь на экран
FREE(RecordQue) ! и очистим ее
IF EOF(Trans) THEN BREAK.
!Если обработаны все записи, то выходим
RESET(Trn:DateKey,SavPosition) !Сбрасываем указатель
. . !Конец цикла
См. также: , ,