自贡黄明儒 发表于 2011-11-11 12:21:40

用lisp开发类excel数据库功能?

由于excel数据库功能强大,简单易用,我们一些程序用它编写。请问有谁用lisp开发类excel数据库功能?

自贡黄明儒 发表于 2011-11-14 16:25:50

;;;Excel数据库函数简单易用,仿此写Dget()
;;;(Dget )
;;;datafile文件可由Excel内拷贝粘贴成txt文件
;;;要求datafile内容按序排列
;|示例
(setq b 1000);b是其它程序运行结果
;;下句与txt文件第一行有关,第一行都成了全局变量,故需将它们写入主函数的局部变量中
(setq filter '(and (= 带宽 b) (>= 头轮合力 170)))
(setq datafile "book1.txt")
(Dget filter datafile)|;
(defun Dget (filter datafile / F FILEHEAD FL J JB LENGT LOOP LST X)
(vl-load-com)
(setq FL (findfile datafile))                ;找到文件
(setq f (open FL "r"))                ;只读打开文件
(setq fileHead (READ-LINE f))                ;读取文件第一行
(setq lst (read (strcat "(" fileHead ")"))) ;加括号
(setq loop T)
(setq lengt (length lst))
(while (and loop (setq jb (READ-LINE f)));最后一行后再读返回nil   
    (setq jb (read (strcat "(" jb ")")))
    (setq j -1)
    (repeat lengt
      (setq j (1+ j) x (nth j lst))
      (SETQ FL (nth j jb))
      ;;如果不是数字,转换成字符串
      (IF (NUMBERP FL) nil (SETQ FL (VL-PRINC-TO-STRING FL)))
      (set x FL)
    )
    (if        (eval filter) (setq loop nil));满足条件时结束循环,不再读取文件
)
(close f)
)
;;;(princ "黄明儒写于2011年11月12日")
;;欢迎同学们批评指正

jyzas 发表于 2013-8-6 20:48:37

下来看看先
页: [1]
查看完整版本: 用lisp开发类excel数据库功能?