乐筑天下

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

[编程交流] 在ge看来,最简单的事情

[复制链接]

7

主题

29

帖子

22

银币

初来乍到

Rank: 1

铜币
35
发表于 2022-7-6 14:55:58 | 显示全部楼层 |阅读模式
我有一个列表,我试图在列表中循环,更改列表中的每个字符串,并将新字符串添加到新列表中。我无法将结果排到列表的底部或顶部。似乎无论我尝试什么,它都会创建一个2项列表,第一项是最后一个编辑的字符串,最后一项是之前更改的每个其他字符串的字符串。我如何让它在字符串上放一个新行?我尝试了附加,多种不同的cons和我能找到的一切。我知道这真的很简单,但出于某种原因,我似乎对简单的事情挂断了。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 15:07:42 | 显示全部楼层
我不确定您到底想做什么(一段示例代码会有所帮助),但我只想使用“cons”将新字符串放入列表中:
 
  1. (setq strlst (cons *newstring* strlst))
回复

使用道具 举报

7

主题

29

帖子

22

银币

初来乍到

Rank: 1

铜币
35
发表于 2022-7-6 15:21:15 | 显示全部楼层
谢谢李的帮助。
我一直在尝试这个和各种各样的缺点,但它仍然没有创建我想要的格式列表。
这是一个样本
 
这有点奏效,但我的列表是这样的。 
正如我所说,我知道我遗漏了一些非常简单的东西,但这让我抓狂:?
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 15:26:15 | 显示全部楼层
我无法真正测试它,因为它使用了那些“dos”函数。。。但是试一试:
 
  1. (setq user (dos_username))
  2.      (cond     ((= user "BLockhart")
  3.             (setq userp "Ben"))
  4.        ((= user "CBearden")
  5.             (setq userp "Chris"))
  6.        ((= user "LBrown")
  7.             (setq userp "Lavon"))
  8.        ((= user "RChambers")
  9.             (setq userp "Ronnie"))
  10.        ((= user "JMitchell")
  11.             (setq userp "Justin"))
  12.        ((= user "JPrice")
  13.             (setq userp "Joe"))
  14.        ((= user "LCooper")
  15.             (setq userp "Lonny"))      
  16.    (setq userp (getstring "\n Please enter your first name: "))
  17.    );cond end
  18.      (setq maindir (dos_getdir "Select directory you wish to print:" (strcat "W:\"userp"\\New Projects")))
  19.    (setq sublist (dos_subdir maindir) subnum (length sublist) cnt 0)
  20.      (while (< cnt subnum)
  21.          (setq fldr (nth cnt sublist))
  22.          (setq dwglist (cons (strcat maindir fldr) dwglist) cnt (+ cnt 1))
  23.      )
  24. )                                         
回复

使用道具 举报

CAB

29

主题

781

帖子

430

银币

中流砥柱

Rank: 25

铜币
526
发表于 2022-7-6 15:45:42 | 显示全部楼层
另一种变体,未经测试。
  1. (setq user (dos_username))
  2. (setq userp (cadr (assoc user
  3.                        '(("BLockhart" "Ben")
  4.                          ("CBearden"  "Chris")
  5.                          ("LBrown"    "Lavon")
  6.                          ("RChambers" "Ronnie")
  7.                          ("JMitchell" "Justin")
  8.                          ("JPrice"    "Joe")
  9.                          ("LCooper"   "Lonny")
  10.                         )
  11.                 )
  12.            )
  13. )
  14. (if (null userp)
  15. (setq userp (getstring "\n Please enter your first name: "))
  16. )
  17. (if
  18. (and
  19.    (/= userp "")
  20.    (setq maindir (dos_getdir "Select directory you wish to print:"
  21.                              (strcat "W:\" userp "\\New Projects")))
  22.    (setq sublist (dos_subdir maindir))
  23.    (setq subnum (length sublist))
  24.    (setq cnt -1)
  25. )
  26.   (while (< (setq cnt (+ cnt 1)) subnum)
  27.     (setq fldr (nth cnt sublist))
  28.     (setq dwglist (cons (strcat maindir fldr) dwglist))
  29.   )
  30. )
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 15:49:53 | 显示全部楼层
啊,一辆漂亮的出租车,很好地使用了关联列表——我应该多看一点这辆车。
回复

使用道具 举报

7

主题

29

帖子

22

银币

初来乍到

Rank: 1

铜币
35
发表于 2022-7-6 15:59:33 | 显示全部楼层
谢谢你们的帮助,
 
这就是我最后要做的。
其他一切都让我的清单看起来很有趣。我害怕从中获取信息。
 
如果你好奇的话,我正在开发一个Batchplot lisp,它在目录中搜索符合特定条件的文件,用这些信息编写一个脚本,然后打印所有文件。
因此,基本上,用户绘制作业所要做的就是选择一个包含所有零件文件夹的目录,然后遍历这些文件夹并拉出相关文件(忽略用于外部参照和参考图形的文件),然后根据边框大小进行打印。让你知道它是如何发生的。。。。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-4 20:59 , Processed in 0.427960 second(s), 66 queries .

© 2020-2025 乐筑天下

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