lisp中读取1行数据,怎么读取这行数据的资料例如M1 0.4 0.12 2-6
答案:1 悬赏:30 手机版
解决时间 2021-02-28 08:56
- 提问者网友:不爱我么
- 2021-02-28 03:19
lisp中读取1行数据,怎么读取这行数据的资料例如M1 0.4 0.12 2-6
最佳答案
- 五星知识达人网友:低血压的长颈鹿
- 2021-02-28 04:44
;lisp中读取1行数据,怎么读取这行数据的资料例如M1 0.4 0.12 2-6
(setq dat-file (getfiled "圆柱销类型" "F:/CAD/test11" "txt" 2))
(setq ff (open dat-file "r"))
(setq jgb nil)
;先将文件中所有以"M"开头的行读取并保存到表jgb中
(while (setq data (read-line ff))
(if (wcmatch data "M#*")
(setq jgb (cons data jgb))
)
)
(close ff) ;将文件关闭
(setq jgb (reverse jgb))
(if jgb ;如果表jgb中有数据
;则输入圆柱销规格进行查询
(while (setq gg (getstring (strcat "\n请选择圆柱销规格" data ":")))
(setq zbb jgb)
(setq fhz nil)
(while (= fhz nil)
(setq zb (car zbb))
(setq zbb (cdr zbb))
;如果表中某项与圆柱销规格字符串+"*"相匹配
(if (wcmatch zb (strcat gg "*"))
;则将赋值给fhz,并结束循环
(setq fhz zb)
)
)
;如果查询到符合要求数据
(if fhz
;则显示查询到的结果
(princ (strcat "\n查询到符合要求的结果为:" fhz))
;否则显示
(princ "\n你选择的圆柱销规格在文件中不存在!")
)
)
)
(setq dat-file (getfiled "圆柱销类型" "F:/CAD/test11" "txt" 2))
(setq ff (open dat-file "r"))
(setq jgb nil)
;先将文件中所有以"M"开头的行读取并保存到表jgb中
(while (setq data (read-line ff))
(if (wcmatch data "M#*")
(setq jgb (cons data jgb))
)
)
(close ff) ;将文件关闭
(setq jgb (reverse jgb))
(if jgb ;如果表jgb中有数据
;则输入圆柱销规格进行查询
(while (setq gg (getstring (strcat "\n请选择圆柱销规格" data ":")))
(setq zbb jgb)
(setq fhz nil)
(while (= fhz nil)
(setq zb (car zbb))
(setq zbb (cdr zbb))
;如果表中某项与圆柱销规格字符串+"*"相匹配
(if (wcmatch zb (strcat gg "*"))
;则将赋值给fhz,并结束循环
(setq fhz zb)
)
)
;如果查询到符合要求数据
(if fhz
;则显示查询到的结果
(princ (strcat "\n查询到符合要求的结果为:" fhz))
;否则显示
(princ "\n你选择的圆柱销规格在文件中不存在!")
)
)
)
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯