kasra 发表于 2022-7-6 11:11:13

请帮助我了解

大家好。
出于某种目的,我试图编写一个lisp例程,它创建了一个文件,文件名是我在路径“D:\myname.txt”中为其指定的。
这个例程还没有完成,我在完成之前进行了测试。
当我运行此例程时,它会创建文件,然后返回此错误:
; 错误:错误的参数类型:FILE nil
 
有人能告诉我这个错误是什么意思吗?
我如何解决这个错误?

MSasu 发表于 2022-7-6 11:17:15

请发布代码节选以进行调试。
 
当做

kasra 发表于 2022-7-6 11:26:55

谢谢msasu。
我找到了产生此错误的原因。
创建文件后,我有一个“while循环”。
在这个循环中,我有一个提示行:

(princ "\n << ...some statements... AND THEN PRESS "ENTER": >> ")

我发现ENTER的存在就是原因。
现在我没有问题了。

Lee Mac 发表于 2022-7-6 11:30:15

您需要使用转义字符序列:
 

\"ENTER\"

MSasu 发表于 2022-7-6 11:40:32

格式如下:
 
(princ "\n << ...some statements... AND THEN PRESS \"ENTER\": >> ")
 
当做

kasra 发表于 2022-7-6 11:46:48

我真是太棒了,李和msasu。

alanjt 发表于 2022-7-6 11:50:48

我同意李和msasu的观点。但是,您也可以使用ascii字符。
 
如。
(princ (strcat "\n << ...some statements... AND THEN PRESS " (chr 34) "ENTER" (chr 34) ": >> "))
 
我保留此信息以供参考:

kasra 发表于 2022-7-6 11:57:07

谢谢Alanjt。
我对不同的方式感兴趣,但有相似的行为。

alanjt 发表于 2022-7-6 12:00:53

没问题。
我会按照Lee和msasu的建议去做,但是知道ascii字符非常有用。我不时提到这一点。
 
您还可以使用ascii命令查找ascii字符。
 
如。
Command: (ascii "3")
51
 
相反,chr to to。
如。
Command: (chr 51)
"3"

kasra 发表于 2022-7-6 12:10:26

我会尽量利用你的好提议。
谢谢
页: [1] 2
查看完整版本: 请帮助我了解