日志正文
|
||
通用函数 文本文件操作通用函数.lsp;;;文本文件操作通用函数 ;;;==================================================* ;;;功能:将文本文件中的内容转换为列表 * ;;;参数:TXTFile ----文本文件名称 * ;;;返回:如能打开文件 并且 有内容,返回内容组成的表;* ;;; 否则返回nil。 * ;;;测试:(ZL-TXTFILE-READTOLIST "D:\\TEST.TXT") (defun ZL-TXTFILE-READTOLIST (TXTFILE / LST_JG F TMP) (setq LST_JG '()) (if (setq F (open TXTFILE "r")) (progn (while (setq TMP (read-line F)) (setq LST_JG (cons TMP LST_JG)) ) (close F) ) ) ;;返回 (reverse LST_JG) ) ;;;==================================================* ;;;功能:获取文本文件的内容的总行数 * ;;;参数:TXTFile ----文本文件名称 * ;;;返回:如能打开文件 并且 有内容,则返回行数; * ;;; 否则,返回nil。 ;;;测试:(ZL-TXTFILE-GETROWS "D:\\TEST.TXT") (defun ZL-TXTFILE-GETROWS (TXTFILE / LST_TMP) (if (setq LST_TMP (ZL-TXTFILE-READTOLIST TXTFILE)) (length LST_TMP) ) ) ;;;==================================================* ;;;功能:获取文本文件中指定行数的文本内容 * ;;;参数:TXTFile ----文本文件名称 * ;;; NUM ----行号。首行为1。 * ;;;测试:(ZL-TXTFILE-GetTxtAtNum "D:\\TEST.TXT" 3) (defun ZL-TXTFILE-GETTXTATNUM (TXTFILE NUM / F TXT LST_TMP) ;;方法一:直接读。优点:速度快 ;;(if(setq F (open TXTFILE "r")) ;; (progn ;; (repeat NUM (read-line F)) ;; (setq TXT (read-line F)) ;; (close F) ;; TXT ;; ) ;;) ;;方法二:借用函数。速度略慢 (if (setq LST_TMP (ZL-TXTFILE-READTOLIST TXTFILE)) (nth (1- NUM) LST_TMP) ) ) ;;;==================================================* ;;;功能:获取文本文件中指定文本内容的行数(位置) * ;;;参数:TXTFile ----文本文件名称 * ;;; TXT ----字符串内容。 * ;;;返回:如果找到,返回行号。首行行号为1。 * ;;; 否则,返回nil ;;;测试:(ZL-TXTFILE-GetNumAtTxt "D:\\TEST.TXT" "123") (defun ZL-TXTFILE-GETNUMATTXT (TXTFILE TXT / LST_TMP LST_TMP2) (if (and (setq LST_TMP (ZL-TXTFILE-READTOLIST TXTFILE)) (setq LST_TMP2 (member TXT LST_TMP)) ) (- (length LST_TMP) (length LST_TMP2) -1) ) ) ;;;==================================================* ;;; 到此结束 * ;;;==================================================*
阅读(?)评论(0)
|
||
评论 想第一时间抢沙发么?