帮忙编程或给个提示
我想编写一个程序,实现以下功能保存文件,文件名为一变量,格式为"文件名(日期).dwg"<BR>首先如果文件"文件名(日期).dwg"存在就设为保存,如果不存在就设为另存为<BR>我现在遇到的问题是会出现"文件名(旧日期).dwg",如果保存了旧出现"文件名(日期)(新日期).dwg"这样子。请教大家怎么把旧日期换成新日期。
知不知道我说什么? 明天、后天……就会变成:
文件名(日期)(日期)(新日期).dwg
文件名(日期)(日期)(日期)(新日期).dwg
…… 把日期定义为一个标准的格式,如20050627。并用特定的字符来分隔,我一般用"_",你这里是用"()")。
检查文件名是否以日期结束。
(IF(文件名以日期结束)<BR> (IF(日期与当日相同)<BR> (保存文件)<BR> (另存文件,删除原文件)<BR> )<BR> (另存文件,删除原文件)<BR>)
<BR> 弄了一个晚上弄出来了
贴出来大家指点指点
;;保存时按时间更改名字保存 (2005.06.28 by 流浪水手)<BR>(defun c:YH_saveas()<BR> (setq YH_DWGTITLED (getvar "DWGTITLED"))<BR> (if (= YH_DWGTITLED 0) (ALERT "请先保存文件")<BR> (progn<BR> (setq YH_DWGload (getvar "DWGPREFIX"))<BR> (setq YH_dwgname (getvar "dwgname"))<BR> (setq YH_dwgnameleng (- (STRLEN YH_dwgname) 4))<BR> (setq YH_dwgname (substr YH_dwgname 1 YH_dwgnameleng))<BR> (setq YH_cdate (ITOA (fix (getvar "cdate"))))<BR> (setq YH_year (substr YH_cdate 1 4))<BR> (setq YH_mon (substr YH_cdate 5 2))<BR> (setq YH_date (substr YH_cdate 7 2))<BR> (if (> YH_dwgnameleng 12)<BR> (progn<BR> (setq YH_namedate (substr YH_dwgname (- YH_dwgnameleng 11)))<BR> (if (and (= (substr YH_namedate 1 1) "[") (= (substr YH_namedate 6 1) "-") (= (substr YH_namedate 9 1) "-") (= (substr YH_namedate 12 1) "]"))<BR> (setq YH_dwgname (substr YH_dwgname 1 (- YH_dwgnameleng 12)))<BR> )<BR> )<BR> )<BR> (setq YH_cdate (strcat "[" YH_year "-" YH_mon "-" YH_date "]"))<BR> (setq YH_file (strcat YH_dwgload YH_dwgname YH_cdate))<BR> (command "saveas" "" YH_file)<BR> )<BR> )<BR> (princ)<BR>)<BR> 还有个功能要实现
就是一个工程下来可定有1个多月,如果按我这样保存的话就有很多文件,我就想在保存后把旧文件挪到其他地方去,不知道这个功能lisp能不能实现? <FONT face=宋体>用vl-file-copy ,vl-file-delete </FONT> 你用的lisp语言啊
页:
[1]