|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
![]() |
#1 | |
повторное открытие текстового файла
инженер-проектировщик
Москва.Терна
Регистрация: 05.10.2006
Сообщений: 33
|
||
Просмотров: 4139
|
|
||||
CAD Регистрация: 28.08.2003
Киев
Сообщений: 1,834
![]() |
> Mr_Eugene
Я не очень большой специалист в ЛИСПе, но мне кажется, что при описании открытия (и т.п.) файлов надо всё делать явно. Т.е. файл должен быть описан с полным путём. ЯТД Например, если он в рабочей директории: Код:
__________________
По теории майский жук летать не может. Но он этого не знает. И летает... |
|||
![]() |
|
||||
инженер-проектировщик Регистрация: 05.10.2006
Москва.Терна
Сообщений: 33
|
>Alan
да дело не в путях доступа если файл без пути - то ищется в папке "Мои документы", а потом по папкам Автокада пробовал пути и полностью прописывать результат тот же - работает только при первом вызове в каждом сеансе вроде и дескриптор закрыл и переменную обнулил ума не приложу [sm2100] |
|||
![]() |
|
||||
CAD Регистрация: 28.08.2003
Киев
Сообщений: 1,834
![]() |
Цитата:
Но.. Дескриптор файла вещь несколько большая, чем переменная. С ним надо акуратненько! Найти файлик, описать, открыть, закрыть и т.д. Не хочется править Ваш текст. Поэтому вставил только необходимое. ЯТД Попробуйте. Код:
__________________
По теории майский жук летать не может. Но он этого не знает. И летает... |
|||
![]() |
|
||||
инженер-проектировщик Регистрация: 05.10.2006
Москва.Терна
Сообщений: 33
|
>Alan
большое спасибо за корректировку но проблема осталась после загрузки кода во второй и более файлы (в одном сеансе) findfile проходит, а (open "v-towns.txt" "r") выдает nil что соответственно приводит к ошибке bad argument type: FILE nil при обращении к дескрипотру (read-line dskrtowns) на этом вся веселуха заканчивается ![]() |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,378
|
Я не тестировал код, просто поменял тот, который опубликовал Alan:
Код:
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
CAD Регистрация: 28.08.2003
Киев
Сообщений: 1,834
![]() |
Цитата:
Поэтому еще раз напоминаю - необходимо писать путь к месту файла! А не надеяться, что он будет найден. Если начали писать на ЛИСПе или на чём-то другом, привыкайте к аккуратности. kpblc молодец, но Ваш текст он не правил (как и я), а там еще много чего править надо. ЯТД
__________________
По теории майский жук летать не может. Но он этого не знает. И летает... |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,378
|
Alan, позволю себе немного поправить: (findfile) в случае нахождения файла возвращает его полный путь. А если не нашел - то nil.
--- Добавлено: Я б хранил, наверное, данные по другой методике, больше напоминающей ini-файлы (либо вообще напрямую в ini закидывал). И обрабатывать проще, и файл один, и создавать его не проблема, и любую координату можно пропустить, впоследствии заменив, например, на 0. Но это уже в общем-то дело вкуса ![]()
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
CAD Регистрация: 28.08.2003
Киев
Сообщений: 1,834
![]() |
kpblc, позволю себе немного поправить тебя.
findfile ищет только: в рабочем каталоге и по стандартным для системы Автокад путям, т.е. те что описаны в настройке. Mr_Eugene, открывает новый файл и для него рабочий каталог будет тот, который описан в ярлыке Автокада, например, "d:\Program Files\AutoCAD 2006\UserDataCache\". Вот тут он и получает ошибку. Чтобы убрать ошибки надо чётко прописать путь и не мучиться. Организация файловой системы пользователя (ИНИ-файлы, переменные...) это уже за областью данной проги. kpblc, согласен?
__________________
По теории майский жук летать не может. Но он этого не знает. И летает... |
|||
![]() |