Halcon可以操作普通文本文件,也可以操作二进制文件。如下图所示,只需要设置“FileType”参数的取值即可明确是操作文本文件还是二进制文件:
下面的程序是操作一个.txt文本文件的完整代码:
* 'input':将已存在的输入文件以ASCII格式打开以供读取。该文件打开以后,将不能再往里面写东西。
* 'output':将打开一个新的输出文件,以便以ASCII格式写入。如果有同名文件,则原文件将先被删除。
* 'append':将已存在的输出文件在文件末尾打开,以便以ASCII格式追加写入。 path := '1.txt' open_file (path, 'output', FileHandle) fwrite_string (FileHandle, 'Hello')
fwrite_string (FileHandle, ',world')
fnew_line (FileHandle)
fnew_line (FileHandle)
fwrite_string (FileHandle, '') close_file (FileHandle) open_file (path, 'input', FileHandle) * fread_char是一次读取一个字符。如果一直重复读到末尾,Char的值为'eof'(结束标记)
* fread_line读取一整行的内容,可能会含有换行标记
* 可以分别取消下面两行代码的注释,观察读到了什么内容
* fread_char (FileHandle, Char)
* fread_line (FileHandle, OutLine, IsEOF) * 注意,读文本内容时,剩余可读的东西是越读越少的
* fread_string也是读取一行的文本,但是不包含换行标记
fread_string (FileHandle, OutString1, IsEOF1)
fread_string (FileHandle, OutString2, IsEOF2) close_file (FileHandle) * 判断文件是否存在并删除文件
file_exists (path, FileExists)
if (FileExists)
open_file (path, 'input', FileHandle)
fread_string (FileHandle, OutString3, IsEOF3)
close_file (FileHandle)
delete_file (path)
endif
第15行close_file 之后,1.txt中内容为: