Введение в Автолисп | страница 36




(read-char [дескриптор_файла]). Функция считывает первый символ из строки, введенной с клавиатуры, или из открытого файла, определенного дескриптором, и возвращает код ASCII этого символа. При повторном обращении к функции считывается следующий символ и так далее. Если дескриптор файла не указан, общение осуществляется с командной строкой.

Пусть буфер командной строки пуст. На вызов (read-char) Автолисп не реагирует, ожидая действий оператора. Ввод в командную строку последовательности ABC Enter возвращает 65 (десятичный ASCII-код символа А). Последующие три вызова функции возвращают последовательно 66, 67, 10 (код перевода строки). Следующий вызов функции устанавливает компьютер в режим ожидания. Важно помнить, что функция Автолиспа не является командой Автокада, поэтому ее нельзя вызвать повторно клавишей Enter или правой клавишей мыши, она всегда должна вводиться явно.


(read-line [дескриптор_файла]). Функция считывает строку с клавиатуры или из файла. Ее действие аналогично предыдущему: каждый последующий вызов приводит к чтению очередной строки, что позволяет просмотреть весь файл.


(strcat строка1 [строка2] ...). Функция возвращает строку, представляющую собой сцепление строк строка1, строка2 и т.д.

Примеры:


(strcat “Auto” “CAD”) возвращает “AutoCAD”,

(strcat “fi” “le”) возвращает “file”.


(strlen [строка]) возвращает целое число, соответствующее числу символов в строке.


(strlen "file”) возвращает 4,

(strlen "file” “desk” “top”) возвращает 11,

(strlen) возвращает 0.


(substr строка начало [длина]). Функция возвращает подстроку строки, начинающуюся с позиции начало и захватывающую количество символов, соответствующее длине. Аргументы начало и длина должны быть целыми числами.


(substr “abcde” 2) возвращает “bcde”,

(substr “abcde” 2 1) возвращает “b”,

(substr “abcde” 3 2) возвращает “cd”.


Две функции - (write-char число [дескриптор_файла]) и (write-line строка [дескриптор файла]) - в примерах не нуждаются. Их задача - записывать в файл символы или строки.


7.4. Пример обработки файла

Поставим следующую задачу. Пусть в результате выполнения программы расчета получены координаты некоторого множества точек, которые следует использовать для построения проходящего через них примитива. Структура файла выглядит следующим образом:


¬¬1¬¬¬¬0¬¬¬¬¬0.0000¬¬¬¬¬¬¬0.0000

¬¬2¬¬¬¬5¬¬¬¬¬6.4214¬¬¬¬¬¬¬8.2349

¬¬З¬¬¬10¬¬¬¬¬8.7965¬¬¬¬¬¬26.1500


и так далее. В четырех столбцах файла расположены следующие параметры: порядковый номер строки, значение аргумента (например, указан шаг счета нарастающим итогом), координаты