cq4920 发表于 2022-11-30 06:28:16

不限制数量的历史记录

本帖最后由 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)
))
      
)

中国梦 发表于 2022-11-30 08:07:21

不会,哈哈

liuhe 发表于 2022-11-30 08:40:33

我记得leemac有类似的程序,你可以去找找

自贡黄明儒 发表于 2022-11-30 08:41:36

会不会你只在文件中写了 两行,所以始终只有两行?
(write-line dwgfilename ff)
(write-line oldff ff)
这不只写了两行吗?

烟盒迷唇 发表于 2022-11-30 09:56:41

不循环就只能读一次了

cq4920 发表于 2022-11-30 16:07:10

自贡黄明儒 发表于 2022-11-30 08:41
会不会你只在文件中写了 两行,所以始终只有两行?
(write-line dwgfilename ff)
(write-line oldff ff ...

我以为,第一次保存,没有读取数据,应该只生成一条,
当第二次命令的时候,有了读取数据,就会生成2条
第三次的时候,应该把前两条都读取了+新的,就会有三条,每次保存都是先读取原本的所有记录,然后加上新的记录!
但是现在发现读取的时候只能读取一条!
页: [1]
查看完整版本: 不限制数量的历史记录