不限制数量的历史记录
本帖最后由 cq4920 于 2022-12-1 00:01 编辑监控命令窗口,出现QSAVE触发命令!
问题1,目前只能保存两次记录(已解决)
问题2,相同文件地址和名称,不能覆盖(需要一个查重--已解决)
问题3,如何提取记录,然后快速打开文件!(已解决)
(vlr-command-reactor nil '((:VLR-commandEnded . cmdEnd)))
(defun cmdend (vlr lst)
(setq cmd(car lst))
(if (= cmd "QSAVE")
(dwgs)
)
)
(defun dwgs (/ dwgname dwgfile fp dwgfile path file i a out )
(setq dwgname(getvar 'dwgname))
(setq dwgfile (getvar "DWGPREFIX"))
(setq dwgfilename (strcat dwgfile dwgname))
(SETQ FP (OPEN "C:\\Users\\Administrator\\AppData\\Roaming\\MRCSET.TXT" "r"))
(SETQ path (READ-LINE FP))
(CLOSE FP)
(setq pathn (strcat path "\\配置\\history" ".txt"))
(if (vl-directory-files (strcat path "\\配置\\") "history.txt")
(progn
(setq file (open pathn"r"))
(while (setq a (read-line file))
(setq out (append out (list a)))
)
(close file)
(setq out (append (list dwgfilename) out)
i 0)
(setq out (MC-pt out)) ;;查重
(setq file (open pathn"w"))
(repeat (length out)
(write-line (nth i out) file)
(setq i (1+ i))
)
(close file)
)
(progn
(setq file (open pathn"w"))
(write-line dwgfilename file)
(close file)
))
)
不会,哈哈 我记得leemac有类似的程序,你可以去找找 会不会你只在文件中写了 两行,所以始终只有两行?
(write-line dwgfilename ff)
(write-line oldff ff)
这不只写了两行吗? 不循环就只能读一次了 自贡黄明儒 发表于 2022-11-30 08:41
会不会你只在文件中写了 两行,所以始终只有两行?
(write-line dwgfilename ff)
(write-line oldff ff ...
我以为,第一次保存,没有读取数据,应该只生成一条,
当第二次命令的时候,有了读取数据,就会生成2条
第三次的时候,应该把前两条都读取了+新的,就会有三条,每次保存都是先读取原本的所有记录,然后加上新的记录!
但是现在发现读取的时候只能读取一条!
页:
[1]