Изучите этот пример, который читает из файла с данными по одной строке до тех пор, команда FILE/READ_LINE не встретит пустую строку. Затем программа детали выведет полученный блок текста и завершится.
V1=FILE/EXISTS,test.txt
IF/V1<>0
COMMENT/OPER,Able to read from data file. Click OK to continue.
ASSIGN/V3 = ""
FPTR=FILE/OPEN,D:\Program Files\pcdmis35\test.txt,READ
DO/
V2=FILE/READLINE,FPTR,{LINE}
ASSIGN/V3 = V3 + LINE
COMMENT/OPER,"The current value of variable V3 is:
,V3
UNTIL/V2 == "EOF"
FILE/CLOSE,FPTR
COMMENT/OPER,"The block of text reads as follows: "
,V3
END_IF/
ELSE/
COMMENT/OPER,Wasn't able to read from data file. Program will now quit.
GOTO/END
END_ELSE/
END=LABEL/
PROGRAM/END
Пояснение кода
Многое в этом коде похоже на код, описанный в "Пример кода для Read Character". Здесь приводится пояснение кода, встречающееся только в этом примере.
DO Эта строка начинает цикл DO / UNTIL. Он включает в себя код FILE/READ_LINE, так что строки последовательно считываются по одной. Выход из цикла выполняется, когда достигается конец файла.
V2=FILE/READLINE,FPTR,{LINE} Эта строка считывает весь текст до тех пор, пока не встретится символ возврата каретки. Вместо хранения текста в V2, как было в FILE/READ_CHARACTER, этот код действует по-другому.
· В этом случае V2 возвращает два значения: "OK" либо "EOF" (конец файла). "OK" – если еще есть строка, которую можно считать. "EOF" – если достигнут конец файла.
· Код {LINE} является вводимой пользователем переменной, которая хранит текущий текст. Он заключен в фигурные скобки для того, чтобы сообщить PC-DMIS, что это переменная, а не часть разграничивающего текста. Без фигурных скобок, PC-DMIS искал бы последовательность символов в файле под названием "LINE" и возвратил бы только текст после "LINE" и до возврата каретки.
ASSIGN/V3 = V3+LINE Эта строка использует пустую переменную V3 и объединяет последовательность символов V3 с LINE, а затем переназначает объединенное значение переменной V3. Таким образом, с каждым выполнением цикла DO/UNTIL, к V3 добавляется по одной строке.
UNTIL/V2 == "EOF" Эта строка проверяет состояние цикла DO / UNTIL. Когда код FILE/READLINE обнаружит конец файла, произойдет выход из цикла. После того, как ход выполнения программы покинет цикл, будет завершено выполнение остатка кода и будет отображен весь блок кода в комментарии оператора.
Прочие примеры: Командная строка: Result = File/ReadLine,F1, "Part ID:" + {V1} приведет к тому, что любой текст, находящийся в считываемой строке после текста "Part ID:" будет назначен переменной V1. Строка будет считана из файла, открытого с использованием F1 в качестве имени указателя. Результат чтения (успех или неуспех) будет сохранен в переменной Result. Командные строки: File/ReadLine,F1, "Location:"+{VARX}+ ","+{VARY}+ ","+{VARZ}+ ","+{VARI}+ ","+{VARJ}+ ","+{VARK} ASSIGN/CIR1.XYZ = MPOINT(VARX, VARY, VARZ) ASSIGN/CIR1.IJK = MPOINT(VARI, VARJ, VARK) прочитают ограниченный запятыми текст после последовательности символов "Location:" и сохранят значения в X, Y, Z, и I, J, K значения CIR1. Командная строка: File/ReadLine,F1, "Value # " + loopvar + " : " + {var2} приведет к тому, что var2 будет присвоен текст после двоеточия. Переменная loopvar в этом примере не окружена фигурными скобками и в результате входит в ограничивающий текст.
Пункт меню Utilities | File I / O | Reading Commands | Read Block (утилиты | ввод/вывод файла | команды чтения | читать блок) вставляет в окно Edit команду, которая считает блок параметров из открытого файла во время выполнения. Число считываемых знаков определяется параметром размера.
Синтаксис этой команды в окне Edit:
<varname>=File/Read_Block,<fptrname>,<size>
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.