明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1937|回复: 6

(read-line f)函数运行是出现参数类型错误

[复制链接]
发表于 2006-3-1 09:05 | 显示全部楼层 |阅读模式
本帖最后由 作者 于 2006-3-1 15:44:20 编辑

我有个程序在r14中运行完全正常,但在2000及以上版本中运行至(read-line f)发生参数类型错误的提示,有时又顺利通过.

     ....... 

     (setq n 0)

      (while(/=setq c(read-line f))nil)

      (princ c f1)

      (princ (getvar "name))f1)

      (princ "\n" f1)

      (setq n (+n 1)))

      (close f)

      (close f1)

        ........

程序总是在(read-line f)处发生错误.请各位大虾帮帮忙,指点一二.多谢!

发表于 2006-3-2 16:17 | 显示全部楼层

(while(/=setq c(read-line f))nil)

改为

(while (setq c (read-line f))

 楼主| 发表于 2006-3-3 12:44 | 显示全部楼层

改过以后 (read-line f)函数返回值也是nil,出现一样的提示。

下面的程序中的(read-line fr)也出现了同样的提示。

(defun l3-4()
  (setq fr(open "a.txt" "r")
           fw(open "b.txt" "a")
            s(read-line fr)
   )
  (while s
    (princ s fw)
    (princ "\\n" fw)
    (setq s(read-line fr))
    )
  (close fr)
  (close fw)
  )
遇到(read-line f)程序就出错,f值为nil ,参数类型错误。

怎么办啊,真是愁死人了。

发表于 2006-3-3 13:13 | 显示全部楼层
  (setq FR (open (findfile "a.txt") "r");要有完整路径
          FW (open "c:\\b.txt" "a");要有完整路径
            S  (read-line FR)
  )
 楼主| 发表于 2006-3-7 05:29 | 显示全部楼层
本帖最后由 作者 于 2006-3-7 9:33:13 编辑

问题的确出在路径上,文件没被找到,经过修改,程序能正常运行了!

可是我还有个疑问,存放程序的路径我在AUTOCAD工具菜单中已经设置了支持路径,为什么还找不到.或把相关的所有文件统统拷贝到AUTOCAD的目录之下,也运行不起来.我的程序和AUTOCAD安装在C盘,现在我把一个(read f)要读的文件单独拷入到C盘根目录下,就可运行,把它搬回来就又不行了.换一台机器,这样修改又有了其他的问题,好怪啊.

....                                          (setq c1 (getstring "\n直径(回车退出)DN="))
(while (/= c1 "") (progn
......

(setq f1 (open "dn" "r"));f1值为#<file "dn">
(read-line f1)       ;此处为nil
1.这个程序名叫dn.lsp, 而其中要打开的进行读操作的文件也叫dn,这样的命名有冲突吗?

2.如果(setq f1 (open dn "r"))中dn是个变量名,此处dn 的路径该怎么表

达.

发表于 2006-3-7 07:50 | 显示全部楼层
仔细看看4楼的回复,要“要有完整路径”
发表于 2006-3-7 08:09 | 显示全部楼层
用findfile得到支持路径下的文件名。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-5-17 19:08 , Processed in 0.291280 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表