本帖最后由 wzg356 于 2014-12-2 16:39 编辑
ymcui 发表于 2014-12-2 15:05
还是不明白,我对LISP是一知半解.还在学习中.
要写入多行文字,
比如第一行是222 在明经搜的- ;txt返回一个表,每行一个子表
- (defun ayFile2List (xFileName / fp xRec sList)
- (setq fp (open xFileName "r"))
- (while (setq xRec (read-line fp))
- (setq sList (cons (read (strcat "(" xRec ")")) sList))
- );end_while
- (close fp)
- sList
- );end_defun
- ;============{ 在指定位置删除或插入元素 }===============
- ;nil表示要删除。如果有值为要插入的元素---by wowan1314
- ;(t11 '(1 2 3 4 5 6) 2 0);;->(1 2 0 3 4 5 6)
- ;(t11 '(1 2 3 4 5 6) 2 nil);;->(1 2 4 5 6)
- ;2013年7月20日 星期六
- (defun t11 (lst pos mod / qlst a hlst)
- (setq a -1)
- (setq hlst (vl-member-if-not
- '(lambda(x) (setq a (1+ a)) (if (= a pos) nil
- (setq qlst (cons x qlst))
- )
- )
- lst
- )
- )
- (if mod
- (apply 'append (list (reverse(cons mod qlst)) hlst))
- (apply 'append (list (reverse qlst) (cdr hlst)))
- )
- )
- ;根据表重写txt文件
- (defun rewritetxt (txtfile lst / dat_file ff i ii tuan )
- (setq ff (open txtfile "w")) ;写文件,如不存在则新建文件,如存在新资料将覆盖旧资料。
- (setq i 1)
- (setq ii (length lst))
- (while (and (/= nil lst) (<= i ii))
- (setq tuan (car lst))
- (write-line tuan ff)
- (setq lst (cdr lst))
- (setq i (+ i 1))
- )
- (close ff)
- )
|