 - ;提取表 表 开始 结束索引值
- ;例:(setq a '(1 2 3 4 5 6 7 8 9))
- ;用法:(tiqulst a 3 6)
- ;当一个表是一个1M以上的文件的字符串,vl-string->list后就会很慢,半个小时都有
- (defun tiqulst (lst sta end / newpl num)
- (if (< end (+ (length lst) 1))
- (progn
- (setq t1 (getvar "CDATE"));记录开始时间
- (setq newpl '())
- (repeat (- end sta)
- (setq num (list (nth sta lst)))
- (setq newpl (append newpl num))
- (setq sta (1+ sta))
- )
- )
- ;else
- (alert "tiqulst中end大于lst的长度")
- )
- (setq t2 (* (- (getvar "CDATE") t1) 1e6));秒
- (princ "\ntiqulst用时")
- (princ t2)
- newpl
- )
说白了,就是substr,但转成string之后会丢数据。如果是C语言就简单得多,1秒都不用。
|