Функции read-line
| Правила | Регистрация | Пользователи | Сообщения за день |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Функции read-line

Функции read-line

Ответ
Поиск в этой теме
Непрочитано 02.12.2006, 22:39 #1
Функции read-line
kminas
 
Регистрация: 25.02.2006
Сообщений: 71

К сожалению, программиста не осталось, приходится изучать AutoLisp. Но не во всё могу сразу въехать.
Если в файле "x.lsp" 2 строки, то как считать функцией read-line первую строку и как вторую?
Просмотров: 2802
 
Непрочитано 02.12.2006, 23:41
#2
AY

webcad.pro
 
Регистрация: 06.01.2005
Московская обл.
Сообщений: 501


Ветоятно как-то так:
Код:
[Выделить все]
(setq file (open (findfile "x.lsp") "r"))

(if file
    (progn
        (setq str-1 (read-line file)
              str-2 (read-line file)
        )
        (close file)
    )
)
после чего переменные str-1 и str-2 будут содержать соответственно первую и вторую строки файла.
AY вне форума  
 
Автор темы   Непрочитано 02.12.2006, 23:55
#3
kminas


 
Регистрация: 25.02.2006
Сообщений: 71


Спасибо, я так и предполагал, но не точно, только вот не понял, что тут делает функция progn?
А как записать в этот файл текст, введенный с клавиатуры функцией write-line?
kminas вне форума  
 
Непрочитано 03.12.2006, 11:58
#4
CB

Конструирование в области нефтеразведки
 
Регистрация: 10.02.2006
Гомель
Сообщений: 321


Цитата:
что тут делает функция progn
Функция PROGN применяется для выполнения нескольких выражений там, где допускается выполнение только одного (например в функции IF).
Цитата:
как записать в этот файл текст, введенный с клавиатуры
Если файл существует, то сначала нужно считать в переменную содержимое этого файла, открытого для чтения, т.е. "r", например так:
Код:
[Выделить все]
(setq file (open (findfile "x.lsp") "r"))
(while (setq temp (read-line file))
  (setq lst (cons temp lst))
)
(close file)
(setq lst (reverse lst))
(setq temp nil)
Переменная lst - список строк файла "x.lsp"
Дальше открываем "x.lsp" записи, т.е. "w", записываем в него содержимое переменной lst и после этого текст вводимый с клавиатуры (с помощью ф-ии (getstring T ...)).
Код:
[Выделить все]
(setq txt (getstring T "Введите новый текст : "))
(setq file (open (findfile "x.lsp") "w"))
(foreach n lst (write-line n file));с каждым элементом списка lst выполняется (write-line...)
(write-line txt file)
(close file)
(setq lst nil)
CB вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Функции read-line