查表函数
(defun cb (f u v / l i) ; 查表; F---表格文件名
; U---行参数
; V---列参数
(setq f (open (findfile (if f (strcat f ".DAT") name)) "r")
i (s-column v (readl f) 1)
l (s-line u (readl f) 0)
)
(close f)
(nth i l)
)
(defun s-column (v l i / c) ; 查列, 从表L第I个元素查找V符合条件的位置
(setq c (nth i l))
(while (if (eq (type v) 'str) (/= v c) (> v c))
(setq c (nth (setq i (1+ i)) l))
(if (> i 200) (*error* "N"))
)
i
)
(defun s-line (v b j / l) ; 查行, 从当前行B的第J列位置查找符合条件的行
(setq l (nth j b))
(while (if (eq (type v) 'str) (/= v l) (> v l))
(setq l (nth j (setq b (readl f))))
)
b
)
(defun readl (f) ; 读行
(read (strcat "(" (read-line f) ")"))
)
;----------------------------------------------
例:
(cb "b2-40.txt" 2 180)
返回(4632)
标题应该是“查询表格的函数” 不好意思,前面搞错了。 谢谢! greatlmy分享程序!!!!!!!
页:
[1]