马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×

- ;;from wkai [[url]www.xdcad.net[/url]]
- ;;20050930
- ;;功能 :将文本文件读入表中
- ;;参数fn :文件名
- ;;返回值 :文件内容表
- ;;示例:(xdl-file->lst "c:\\1.txt")
- (defun xdl-file->lst(fn / re f LINE)
- (setq f (open fn "r"))
- (while (setq line (read-line f))
- (setq re (cons line re))
- )
- (close f)
- (reverse re)
- )

- ;;from wkai [[url]www.xdcad.net[/url]]
- ;;20050930
- ;;功能 :将字符串表写入文本文件
- ;;参数lst:字符串表
- ;; fn :要写入的文件名
- ;;返回值 :无
- ;;示例:(xdl-lst->file '("第一行""第二行") "c:\\1.txt")
- (defun xdl-lst->file(lst fn / f x)
- (setq f (open fn "w"))
- (mapcar '(lambda(x)(write-line x f)) lst)
- (close f)
- )

- ;;from wkai [[url]www.xdcad.net[/url]]
- ;;20050930
- ;;功能 :替换文本文件中的部分文本
- ;;参数newstr:替换文本
- ;; oldstr:被替换文本
- ;; file :被操作的文件
- ;;返回值 :替换次数
- ;;示例:(xdl-file-substr "第一行" "这是替换后的第一行" "c:\\1.txt")
- (defun xdl-file-substr(oldstr newstr file / RE count)
- (setq lst (xdl-file->lst file)
- oldstr1 (strcat "*" oldstr "*")
- count 0
- )
- (foreach n lst
- (if (wcmatch n oldstr1)
- (setq n (vl-string-subst newstr oldstr n)
- count (1+ count)
- )
- )
- (SETQ RE (CONS N RE))
- )
- (xdl-lst->file (REVERSE re) file)
- count
- )

- ;;from wkai [[url]www.xdcad.net[/url]]
- ;;20050930
- ;;功能 :替换多个文本文件中的文本
- ;;参数newstr:替换文本
- ;; oldstr:被替换文本
- ;;filelst:目标文件文件名或者文件名列表
- ;;返回值 :被替换的文件个数
- ;;示例:(xdl-file-substr-m "这是替换后的第一行" "第一行" '("c:\\1.lsp" "c:\\2.txt"))
- (defun xdl-file-substr-m (old new filelst / files n count)
- (setq count 0)
- (if (listp filelst)()(setq files(list filelst)))
- (foreach n filelst
- (if ( > (xdl-file-substr old new n) 0) (setq count (1+ count)))
- )
-

- ;;from wkai [[url]www.xdcad.net[/url]]
- ;;20050930
- ;;功能 :获取某路径下所有符合样本的文件名表
- ;;参数path:路径
- ;; pattern:文件名样本
- ;;返回值 :文件名表
- ;;示例:(xdl-file-allinfolder "c:" "*.exe" t)
- (defun xdl-file-allinfolder(path pattern sub / n re)
- (setq p (cddr(mapcar '(lambda(x)(strcat path "\" x))(vl-directory-files path "*" 0))))
- (foreach n p
- (if (vl-file-directory-p n)
- (if sub (setq re (append (xdl-file-allinfolder n PATTERN sub) re)))
- (if (wcmatch (strcat (vl-filename-base n)
- (if (vl-filename-extension n)
- (vl-filename-extension n)
- ""
- )
- )
- pattern
- )
- (setq re (cons n re))
- )
- )
- )
- re
- )

- ;;from wkai [[url]www.xdcad.net[/url]]
- ;;20050930
- ;;功能 :选择一个文件夹,可以创建新文件夹
- ;;参数msg:提示信息
- ;;返回值 :文件夹路径
- ;;示例:(xdl-file-getfolder "选择一个文件夹")
- (defun xdl-file-getfolder (msg / WinShell shFolder path catchit)
- (vl-load-com)
- (setq winshell (vlax-create-object "Shell.Application"))
- (setq shFolder (vlax-invoke-method WinShell 'BrowseForFolder 0 msg 255))
- (setq
- catchit (vl-catch-all-apply
- '(lambda ()
- (setq shFolder (vlax-get-property shFolder 'self))
- (setq path (vlax-get-property shFolder 'path))
- )
- )
- )
- (if (vl-catch-all-error-p catchit)
- nil
- path
- )
- )
|