Hardeight 发表于 2022-7-6 14:55:58

在ge看来,最简单的事情

我有一个列表,我试图在列表中循环,更改列表中的每个字符串,并将新字符串添加到新列表中。我无法将结果排到列表的底部或顶部。似乎无论我尝试什么,它都会创建一个2项列表,第一项是最后一个编辑的字符串,最后一项是之前更改的每个其他字符串的字符串。我如何让它在字符串上放一个新行?我尝试了附加,多种不同的cons和我能找到的一切。我知道这真的很简单,但出于某种原因,我似乎对简单的事情挂断了。

Lee Mac 发表于 2022-7-6 15:07:42

我不确定您到底想做什么(一段示例代码会有所帮助),但我只想使用“cons”将新字符串放入列表中:
 

(setq strlst (cons *newstring* strlst))

Hardeight 发表于 2022-7-6 15:21:15

谢谢李的帮助。
我一直在尝试这个和各种各样的缺点,但它仍然没有创建我想要的格式列表。
这是一个样本
 
这有点奏效,但我的列表是这样的。 
正如我所说,我知道我遗漏了一些非常简单的东西,但这让我抓狂:?

Lee Mac 发表于 2022-7-6 15:26:15

我无法真正测试它,因为它使用了那些“dos”函数。。。但是试一试:
 

(setq user (dos_username))
   (cond   ((= user "BLockhart")
            (setq userp "Ben"))
       ((= user "CBearden")
            (setq userp "Chris"))
       ((= user "LBrown")
            (setq userp "Lavon"))
       ((= user "RChambers")
            (setq userp "Ronnie"))
       ((= user "JMitchell")
            (setq userp "Justin"))
       ((= user "JPrice")
            (setq userp "Joe"))
       ((= user "LCooper")
            (setq userp "Lonny"))      
   (setq userp (getstring "\n Please enter your first name: "))
   );cond end
   (setq maindir (dos_getdir "Select directory you wish to print:" (strcat "W:\\"userp"\\New Projects")))
   (setq sublist (dos_subdir maindir) subnum (length sublist) cnt 0)
   (while (< cnt subnum)
         (setq fldr (nth cnt sublist))
         (setq dwglist (cons (strcat maindir fldr) dwglist) cnt (+ cnt 1))
   )
)                                       

CAB 发表于 2022-7-6 15:45:42

另一种变体,未经测试。
(setq user (dos_username))
(setq userp (cadr (assoc user
                     '(("BLockhart" "Ben")
                         ("CBearden""Chris")
                         ("LBrown"    "Lavon")
                         ("RChambers" "Ronnie")
                         ("JMitchell" "Justin")
                         ("JPrice"    "Joe")
                         ("LCooper"   "Lonny")
                        )
                )
         )
)
(if (null userp)
(setq userp (getstring "\n Please enter your first name: "))
)
(if
(and
   (/= userp "")
   (setq maindir (dos_getdir "Select directory you wish to print:"
                           (strcat "W:\\" userp "\\New Projects")))
   (setq sublist (dos_subdir maindir))
   (setq subnum (length sublist))
   (setq cnt -1)
)
(while (< (setq cnt (+ cnt 1)) subnum)
    (setq fldr (nth cnt sublist))
    (setq dwglist (cons (strcat maindir fldr) dwglist))
)
)

Lee Mac 发表于 2022-7-6 15:49:53

啊,一辆漂亮的出租车,很好地使用了关联列表——我应该多看一点这辆车。

Hardeight 发表于 2022-7-6 15:59:33

谢谢你们的帮助,
 
这就是我最后要做的。
其他一切都让我的清单看起来很有趣。我害怕从中获取信息。
 
如果你好奇的话,我正在开发一个Batchplot lisp,它在目录中搜索符合特定条件的文件,用这些信息编写一个脚本,然后打印所有文件。
因此,基本上,用户绘制作业所要做的就是选择一个包含所有零件文件夹的目录,然后遍历这些文件夹并拉出相关文件(忽略用于外部参照和参考图形的文件),然后根据边框大小进行打印。让你知道它是如何发生的。。。。
页: [1]
查看完整版本: 在ge看来,最简单的事情