乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
楼主: Luís Augusto

[编程交流] 进行查询

[复制链接]

14

主题

76

帖子

63

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
70
发表于 2022-7-6 00:07:51 | 显示全部楼层
(教程)使用AutoLISP按标记读取文件
«日期:2008年1月22日下午04:25:41»
 
http://www.theswamp.org/index.php?topic=21047.0
 
[需要沼泽会员才能查看]
回复

使用道具 举报

14

主题

76

帖子

63

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
70
发表于 2022-7-6 00:12:47 | 显示全部楼层
大家好,我需要帮助解决这个问题。
看到下面的代码正在工作,但我不满意。
 
  1. (defun c:query ()
  2. (setq fo (open "[color="red"]C:\\Users\\Augusto\\Desktop\\Sample.csv[/color]" "r"))
  3. (setq cod (strcase (getstring t "\nEnter code: "))) ;"AM0.35" or "CZ0.35" ....
  4. (while (setq aline (read-line fo))
  5.    (if        (wcmatch aline (strcat "*" cod))
  6.        (setq cod (substr aline (+ 2 (strlen cod))))
  7. ); if
  8.   ); while
  9. (alert (strcat "Found a match: " cod "\n"))
  10. (princ)
  11. (close fo)
  12. )

测试:样品。csv
 
我想学习如何创建一个不需要一直访问文件的函数。
我正试图找到一种方法来检索另一个列表中的一个列表,它的部分值是已知的。
 
Lee Mac编写的“ReadCSV-V1-3”代码,传递到变量“data”,一个包含值的列表​​从文件中,但找不到使用它的方法。
 
我的想法是这样的。在代码的开头,我读取了外部文件并将其存储在一个名为“table”的变量中。退出程序时不会清除此变量,因为它是代码的新执行,我检查它是否干净。这样就不需要不断访问文件。
 
我对学习这门学科很感兴趣。
非常感谢你。
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-6 00:15:43 | 显示全部楼层
我不会用变量“table”可能会得到一个保留字的问题,任何方式回答你的要求。
 
  1. (if (= partslist nil)
  2. (progn
  3. (setq fo (open "C:\\Users\\Augusto\\Desktop\\Sample.csv" "r"))
  4. (while (setq partslist (cons (read-line fo) partslist)))
  5. )
  6. (close fo)
  7. (alert "partslist now available use nth to retrieve")
  8. )
  9. )
回复

使用道具 举报

14

主题

76

帖子

63

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
70
发表于 2022-7-6 00:18:02 | 显示全部楼层
正是这一部分我遇到了麻烦。
就我所知,函数nth(nth)需要知道您在列表中的位置。
鉴于这一困难,我进一步研究了vl函数。
我找到了vl成员if函数。
我想过使用vl成员if将列表带到第一个位置,并遵循第n个函数(nth)0?这行得通吗?
 
或者有其他解决方案?
 
非常感谢。
回复

使用道具 举报

1

主题

475

帖子

481

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-6 00:20:41 | 显示全部楼层
嗨,路易斯,
如果我理解正确的话,也许是这样的。。。
需要Lee Mac的LM:readcsv例程。
  1. (defun c:test (/ ANS FILE STR)
  2. (if (not *mylist*)
  3.    (if (setq file "C:\\Users\\Augusto\\Desktop\\Sample.csv")
  4.      (setq *mylist* (LM:readcsv file))
  5.      (princ "\nSample.csv was not found!")
  6.    )
  7. )
  8. (cond (*mylist*
  9. (if (setq str (getstring "\nEnter code: "))
  10.    (progn
  11.      (foreach x *mylist*
  12.        (if (wcmatch (car x) str)
  13.   (setq ans (cadr x))
  14.        )
  15.      )
  16.      (if ans
  17.        (alert (strcat "Found a match: \n" ans "\n"))
  18.        (alert "\nMatch not faund!!")
  19.      )
  20.    )
  21. )
  22. )
  23. )
  24. (princ)
  25. )

 
如果你有任何问题,请在Portugès给我发邮件。。。
HTH公司
亨里克
回复

使用道具 举报

14

主题

76

帖子

63

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
70
发表于 2022-7-6 00:25:34 | 显示全部楼层
完美的
 
谢谢你,亨利,你完全理解我的需要。
你的代码很容易理解。谢谢你和我分享你的知识。
 
祝你好运,路易斯·奥古斯托。
回复

使用道具 举报

1

主题

475

帖子

481

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-6 00:28:29 | 显示全部楼层
不客气,路易斯·奥古斯托
很高兴我能帮忙
 
 
亨里克
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 00:30:51 | 显示全部楼层
 
良好的执行Henrique-
 
如果你不介意的话,我有一些小建议[以下内容未经测试]:
  1. (defun c:test ( / ans str )
  2.    (if (or *mylist* (setq *mylist* (LM:readcsv "C:\\Users\\Augusto\\Desktop\\Sample.csv")))
  3.        (if (/= "" (setq str (getstring t "\nEnter code <exit>: ")))
  4.            (if (setq ans (vl-member-if '(lambda ( x ) (wcmatch (car x) str)) *mylist*))
  5.                (alert (strcat "Found a match:\n" (car ans)))
  6.                (alert "Match not found.")
  7.            )
  8.        )
  9.        (princ "\nSample.csv not found.")
  10.    )
  11.    (princ)
  12. )
自:
 
(setq文件“C:\\Users\\Augusto\\Desktop\\Sample.csv”)
 

(setq str(getstring“\n输入代码:”))
 
将始终返回非nil值,如果vl成员似乎更适合此任务,则返回vl成员。
 
回复

使用道具 举报

1

主题

475

帖子

481

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-6 00:33:04 | 显示全部楼层
谢谢你,李
修改得很好!
 
亨里克
回复

使用道具 举报

14

主题

76

帖子

63

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
70
发表于 2022-7-6 00:36:55 | 显示全部楼层
感谢大家为我的学习做出的贡献。
 
当做
路易斯·奥古斯托
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-11 00:28 , Processed in 1.212811 second(s), 70 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表