Системы автоматизированного конструирования. Толстоба Н.Д. - 48 стр.

UptoLike

Составители: 

47
(if (/= (findfile "filename") nil)
(progn
(setq f (open (findfile "filename") "r"))
(close f)
)
;(вывод надписи, что нет такого файла)
)
Для того, чтобы осуществить чтение из файла, необходимо знать его структуру.
Если данные в файле расположены столбиком (по одному в строке), то можно обойтись
простым оператором read-line. С выполнением каждого оператора read-line, производится
переход на следующую строку в файле.
; чтение одной строки из файла, открытого по дескриптору файла f.
(read-line f)
В результате мы получим некое строковое выражение. Его можно обработать с
помощью операторов atoi или atof для получения целого или вещественного значений
соответственно.
(setq a (atof(read-line f))) ; извлекаем вещественное значение
Если строка сложная - то сначала придется разделить ее на составляющие части.
Разделить строку на подстроки можно с помощью оператора substr:
(setq a(read-line f))
(setq b(substr a 1 7)) ; выделение первых семи позиций строки
В таблице представлена обработка строк файла - получение целого, вещественного,
строкового значений, выделение подстроки и ее обработка. Слева вы видите пример файла с
некоторой информацией, а справа - четыре варианта обработки строк файла и результаты
обработки*.
Рис 13. Файл с информацией. Обработка.
* Для наглядности представления, знак пробела в подстроках помечен как "_".
Запись в файл