|
|||||||||||||||||||||||||
- Информация раздела AutoLISP. Рекомендуем [Компьютер | Рефераты] |
Проектирование Проектирование |
Работа файлами подробностях Для осуществления чтения из файла, необходимо, чтобы файл-источник информации находился в текущем каталоге. Текущий каталог - это каталог, в котором сохранен файл чертежа, с которым Вы работаете. Это означает, что перед запуском своей программы необходимо удостовериться, сохранен ли файл чертежа. Для открытия файла необходимо его найти. Этим занимается функция (Findfile
"filename"). Она возвращает путь в к файлу, который уже
можно использовать в программе для открытия файла. (setq f (open (findfile "filename") "r")) Или nil - свидетельствует об отсутствии упомянутого файла. Поэтому перед открытием файла для чтения необходимо проверять его наличие. (if (/= (findfile "filename") nil) Для того, чтобы осуществить чтение из файла, необходимо знать его структуру. ; чтение одной строки из файла, открытого по дескриптору
файла f. В результате мы получим некое строковое выражение. Его можно обработать с помощью операторов atoi или atof для получения целого или вещественного значений соответственно. ; извлекаем вещественное значение Если строка сложная - то сначала придется разделить ее на составляющие части. Разделить строку на подстроки можно с помощью оператора substr: (setq a(read-line f)) После отделения необходимой части строки, можно ее обработать с помощью тех-же операторов-обработчиков для получения целых или вещественных значений. В таблице представлена обработка строк файла - получение целого, вещественного,
строкового значений, выделение подстроки и ее обработка. Слева вы видите
пример файла с некоторой информацией, а справа - четыре варианта обработки
строк файла и результаты обработки*.
Запись в файл Для создания файла необходимо воспользоваться оператором (open "filename" "w"). Если filename - просто имя файла с расширением, то файл создастся в текущем каталоге. Если это путь вида: Диск:\\каталог\\каталог\\имя.файла то файл создастся в указанном каталоге. Для записи в текстовый файл наиболее удобно использовать оператор write-line. Он позволяет записывать информацию в файл построчно. (write-line "Test" f) Для вывода в файл все данные должны быть преобразованы в строки. Целые - itoa, вещественные - rtos, объединение строк - strcat. В приведенном ниже примере производится формирование строки для вывода информации о точке. ;; функция для преобразование точки в строку Таким образом, в результате этого кода вы получите описание координат точки в виде "(x,y)". При запуске: (pt_to_str (list 3.45 80)) Преобразуя и соединяя необходимые строки, можно организовать вывод информации в файл. Работа с файлом, количество строк которого неизвестно Чтение строк файла можно производить в цикле. Наиболее подходит для этого цикл while. (while (условие) Условием цикла необходимо задать (/= a nil)
- неравенство прочитанной строки концу файла. (setq a (read-line f)) Тогда такая конструкция будет стабильно работать при неизвестном количестве
строк в обрабатываемом файле. Чтобы быть в курсе всех событий, получения необходимой и интересной информации, подпишись на рассылку "Создание САПР на базе продуктов Autodesk"
|
||
BESTHOSTING - хостинг от 6 уе за 1000 Мб места на диске, домен - бесплатно! |
Домой | AutoCAD | Autodesk Inventor | Разное | Студенту | Скачать | Контакты | Каталог |
(с) 2004 Калугин Сергей Сергеевич |