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

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

структурированный список

Ответ
Поиск в этой теме
Непрочитано 10.09.2007, 10:44
структурированный список
Holon
 
CNC
 
Israel
Регистрация: 07.07.2007
Сообщений: 302

Помогите преобразовать
Код:
[Выделить все]
("9001 2" "9002 4" "9003 7" "9004 8" "9005 0")
в структурированный список

Код:
[Выделить все]
((9001 2) (9002 4) (9003 7) (9004 8) (9005 0))
Просмотров: 13429
 
Непрочитано 11.09.2007, 12:36
#21
CB

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


Код:
[Выделить все]
(defun test (key value / filename file lst lst-new rec_txt)
  (defun rec_txt (txt /)
    (if txt
      (cons (read (strcat "(" txt ")"))
	    (rec_txt (read-line file))
      ) ;_ end of cons
    ) ;_ end of if
  ) ;_ end of defun
  (if (setq filename (getfiled "Выберите файл" "" "dat" 8))
    (progn
      (setq file (open filename "r")
	    lst    (rec_txt (read-line file))
	    file   (open filename "w")
	    lst-new (subst (list key value) (assoc key lst) lst)
      ) ;_ end of setq
      (foreach item lst-new
	(write-line
	  (strcat (itoa (car item)) " " (itoa (cadr item)))
	  file
	) ;_ end of write-line
      ) ;_ end of foreach
      (close file)
      (princ (strcat "Информация сохранена в файле : " filename))
    ) ;_ end of progn
    (princ "Файл не выбран")
  ) ;_ end of if
  (princ)
) ;_ end of defun

;;;(test 9002 100)
CB вне форума  
 
Непрочитано 11.09.2007, 14:04
#22
Елпанов Евгений

программист
 
Регистрация: 20.12.2005
Москва
Сообщений: 1,439
Отправить сообщение для Елпанов Евгений с помощью Skype™


Кажется, мой вариант уже и не интересен, после такого количества вариантов...
Публикую только для кучи.

Код:
[Выделить все]
(defun test (file lst / F L S)
 (setq f   (open file "r")
       lst (mapcar (function (lambda (a) (cons (atoi a) a))) lst)
 ) ;_  setq
 (while (setq s (read-line f))
  (if (assoc (atoi s) lst)
   (setq l (cons (cdr (assoc (atoi s) lst)) l))
   (setq l (cons s l))
  ) ;_  if
 ) ;_  while
 (close f)
 (setq f (open file "w"))
 (foreach a (reverse l) (write-line a f))
 (close f)
)
вызывать:
Код:
[Выделить все]
(test  "D:\\1.txt" '("9001 33" "9002 1" "9003 9" "9004 3" "9005 2"))
Елпанов Евгений вне форума  
 
Автор темы   Непрочитано 11.09.2007, 14:09
#23
Holon

CNC
 
Регистрация: 07.07.2007
Israel
Сообщений: 302


Всем огромное спасибо буду разбираться
Holon вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > структурированный список

Размещение рекламы