将VAR插入路径
快一点。。。是否可以将存储的VAR粘贴到路径中?即
I存储
(setq usr(getvar“LOGINNAME”))
稍后,我想将日志文件写入路径:
(setq f(“C:\\%usr%.txt”))
或者像这样的。。。 我认为strcat函数可以帮你解决这个问题。
例如。
(setq usr (getvar 'loginname))
(setq f (strcat "C:\\" usr ........ and so on
谢谢,我刚刚读了一些其他的例子,“strcat”跳了出来。
(只是写我的第一行代码……哎呀!) 很高兴听到这个消息,如果你需要帮助,就闭嘴。 只是看看如何删除“.”(句号)来自用户名。我正在将一些文本输出到给定位置的文本文件,但文本文件名基于登录名。但是我不想要“monk.monk.txt”!
感谢指点。当我有它的工作,我会张贴起来! 工作至今!很可能会将其作为某个子程序。
(defun C:saveSupportPaths (/ usr files paths f)
(vl-load-com)
(setq files (vla-get-files (vla-get-preferences (vlax-get-acad-object))))
(setq paths (vla-get-supportpath files))
(setq f (open (strcat "C:\\Users\\monk.monk\\Desktop\\"(getvar "LOGINNAME")".txt")"w"))
(write-line paths f)
(close f)
(princ)
) 有很多方法可以实现这一点,这里只有一个:
这里是另一个:
(vl-string-translate "." " " (getvar 'LOGINNAME)) 谢谢李。(我现在经常使用你的网站!)
按照你的建议,我要一个肉店。我对上面代码的唯一想法是,如果路径不存在或不可用,会发生什么?程序是挂起还是停止?我需要添加错误部分吗?
如果路径:
"C:\\Users\\monk.monk\\Desktop"不存在,当试图在不存在的路径上创建文本文件时,open函数将返回nil。
现在,由于变量“f”为nil,write line传递了一个null文件描述符参数,因此会将字符串写入命令行,而不是文件(因为文件描述符参数是可选的)。
但是,当传递空文件描述符时,关闭函数将出错:
为了避免这些错误,包括一个简单的条件语句:
当然,这不包括从文件路径字符串中删除无效字符的代码。 那位先生很完美。
我正在尽可能多地阅读。我正在使用你的网站,afralisp,visual lisp开发者圣经。你能想到其他资源吗?硬拷贝很好。我想要一个所有功能的参考/字典等,但那将是巨大的!
页:
[1]
2