打开一个文件,供其他 AutoLISP I/O 函数访问
(open filename mode)
参数
filename
字符串,指定要打开文件的名称和扩展名。如果没有指定文件的全部路径,则 open 假定其路径为 AutoCAD 启动目录。
mode
指明文件的状态为打开文件用于读、写或追加。字符串可以包含下列字符之一:
r 打开用于读操作。
w 打开用于写操作。如果 filename 不存在,则创建新文件并打开它。如果文件名存在,则覆盖其现有数据。传给一个已打开文件的数据,只有在用 close 函数关闭文件后才会真正被写入文件中。
a 打开文件用于追加操作,如果 filename 不存在,则创建一个新文件并打开它;如果 filename 存在,则打开该文件并把文件指针移到现有数据的尾部,用户写入文件的数据追加到现有数据的后面。
mode 参数可以为大写或小写。在 AutoCAD 2000 以前的版本中,mode 只能使用小写格式。
返回值
如果成功,open 返回一个可由其他 I/O 函数使用的文件描述符。如果指定了模式“r”且 filename 不存在,则 open 返回 nil。
注意 在 DOS 系统中,某些程序和文本编辑器在写入文本文件时会在文本尾部加上一个文件结束标记(CTRL+Z,十进制 ASCII 码 26)。在读入文件时,当碰到 CTRL+Z 标记时,便返回文件结束状态,而不管其后是否还有其他数据。如果想用 OPEN 函数的 "a"(追加)方式在其他程序所建立的文本文件后面追加数据,则必须保证这些程序没有在其文本文件尾部插入 CTRL+Z 结束标记。
示例
打开现有文件:
命令: (setq a (open "c:/program files/ <AutoCAD installation directory>/help/filelist.txt" "r"))
#<file "c:/program files/ <AutoCAD installation directory>/help/filelist.txt">
假定下面样例中 open 所用的文件不存在:
命令: (setq f (open "c:\\my documents\\new.tst" "w"))
#<file "c:\\my documents\\new.tst">
命令: (setq f (open "nosuch.fil" "r"))
nil
命令: (setq f (open "logfile" "a"))
#<file "logfile">
明经通道 版权所有 未经许可 不得传播 | 评论 |