Введение в Автолисп | страница 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
и так далее. В четырех столбцах файла расположены следующие параметры: порядковый номер строки, значение аргумента (например, указан шаг счета нарастающим итогом), координаты