关于写出文件之后的回用读入问题
<p>各位好!</p><p> 有一个问题请教,我编写了一个程序,把一组坐标点写出到一个名叫 aaa.txt 的文件中,然后在该已经打开的AutoCAD图中,用这一个 aaa.txt 与另外一组早已经存在的 bbb.txt 坐标数据文件来进行画线段操作,但是遗憾的是操作中间报错,报错主要报告不能用aaa.txt文件!</p><p> 只有当关闭CAD重新启动,或者把 aaa.txt 文件改名才能做连接线段操作,非常麻烦,不知道哪一位能够给予指点,在写出坐标程序或者在连线段程序内加入什么东西后,能够做到写出 aaa.txt 文件后,在连线段程序直接读入用这个aaa.txt程序。</p><p> 在此先谢了!</p><p></p> 楼主最好把程序和 .txt文件贴上来 本帖最后由 作者 于 2008-7-10 13:17:24 编辑 <br /><br /> <p>;指定加入的内容,调用WriteFile程序完成追加<br/> (defun add_new()<br/> ……</p><p> ……</p><p> (setq file1 (findfile "texing_data.txt"))<br/> (if file1<br/> (progn<br/> (setq path (vl-filename-directory file1))<br/> (setq file2 (strcat path "<a href="file://aaaax.txt/">\\aaaax.txt</a>"))<br/> <font color="#ff0033">(setq f (open file2 "w"))</font> <br/> <font color="#ff0033">(princ add_str f)<br/></font> <font color="#ff0033"> (close f)<br/></font> )<br/> )<br/> <font color="#ff0000">(setq f nil)</font><br/> (if (and (vl-file-copy file2 file1 T)<br/> (vl-file-delete file2)<br/> )<br/> (alert "自定义添加成功!")<br/> )<br/> (prin1)<br/> )<br/> )<br/> )</p><p>请注意红色代码中变量"f",再close之后,其实内存中依然存在,就好像windows中的WMP播放软件,即使关了当前程序,其历史记录也会在内存中,</p><p>结果就导致你没有办法进行删除或重命名操作,解决的办法就是不保留记录,和此类似,在程序末尾处加一条语句<font color="#ff0000">(setq f nil)</font>就可解决了</p> <p>我测试没有出现“没有办法进行删除或重命名操作”的问题</p><p>注意 (vl-file-copy file2 file1 T) 是将 file2 写入 file1 尾部,在创建 file2 的时候,最好第一行写入 "\n"</p><p></p><p>顺便问一下,为什么不用 (open file "a") 的方法追加数据??</p> (open file "a") 是追加数据比较好的方法,上面的一段代码旨在学习vl-file-copy等vl函数,看到楼主的帖子,就贴过来了,哈哈 <p>非常感谢各位,我有一个疑问,我在编程序时,经过各位的指点,用了vl函数,但是,实际上我手头没有这方面的资料,不知道哪位大侠能够推荐这方面的资料或者参考书之类的,这样我能够继续深入学习。</p>
页:
[1]