greatlmy 发表于 2013-6-11 07:48:20

查表函数

(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 发表于 2013-6-11 08:04:33

标题应该是“查询表格的函数”

greatlmy 发表于 2013-6-11 08:05:14

不好意思,前面搞错了。

yoyoho 发表于 2019-7-18 23:38:57

谢谢! greatlmy分享程序!!!!!!!
页: [1]
查看完整版本: 查表函数