代码之家  ›  专栏  ›  技术社区  ›  Bernie Wong

如何从CLIPS程序中获取目录列表

  •  0
  • Bernie Wong  · 技术社区  · 7 年前

    我试图找到一种方法,从运行的CLIPS程序中获取目录列表。最终目标是让我的CLIPS程序运行,找到一组事实文件加载到CLIPS中,然后运行我的规则。

    http://www2.cs.siu.edu/~rahimi/cs537/slides/big-2.pdf ,我试过了

    (defrule list-the-directory 
    =>
      (printout t (system “ls ” “*.txt”) crlf)
    )
    

    该函数调用已完成,但未返回任何异常。

    提前感谢您的帮助。

    伯尼

    1 回复  |  直到 7 年前
        1
  •  1
  •   Gary Riley    7 年前

    如果将系统命令的输出定向到文件,则可以使用CLIPS I/O命令打开文件并打印其内容:

    (defrule list-the-directory
       =>
       (system "ls > out.txt")
       (open "out.txt" out "r")
       (bind ?line (readline out))
       (while (neq ?line EOF)
          (printout t ?line crlf)
          (bind ?line (readline out)))
       (close out))
    

    如果使用Load Constructs…菜单命令加载规则,则目录将设置为包含规则的目录,您可以在创建和打开文件时指定部分目录路径。否则,您需要指定完整的文件路径。