Halcon可以操作普通文本文件,也可以操作二进制文件。如下图所示,只需要设置“FileType”参数的取值即可明确是操作文本文件还是二进制文件:
下面的程序是操作一个.txt文本文件的完整代码:
1 * ‘input’:将已存在的输入文件以ASCII格式打开以供读取。该文件打开以后,将不能再往里面写东西。
2 * ‘output’:将打开一个新的输出文件,以便以ASCII格式写入。如果有同名文件,则原文件将先被删除。
3 * ‘append’:将已存在的输出文件在文件末尾打开,以便以ASCII格式追加写入。
4
5 path := ‘1.txt’
6
7 open_file (path, ‘output’, FileHandle)
8
9 fwrite_string (FileHandle, ‘Hello’)
10 fwrite_string (FileHandle, ‘,world’)
11 fnew_line (FileHandle)
12 fnew_line (FileHandle)
13 fwrite_string (FileHandle, ‘886’)
14
15 close_file (FileHandle)
16
17
18 open_file (path, ‘input’, FileHandle)
19
20 * fread_char是一次读取一个字符。如果一直重复读到末尾,Char的值为’eof’(结束标记)
21 * fread_line读取一整行的内容,可能会含有换行标记
22 * 可以分别取消下面两行代码的注释,观察读到了什么内容
23 * fread_char (FileHandle, Char)
24 * fread_line (FileHandle, OutLine, IsEOF)
25
26 * 注意,读文本内容时,剩余可读的东西是越读越少的
27 * fread_string也是读取一行的文本,但是不包含换行标记
28 fread_string (FileHandle, OutString1, IsEOF1)
29 fread_string (FileHandle, OutString2, IsEOF2)
30
31 close_file (FileHandle)
32
33
34 * 判断文件是否存在并删除文件
35 file_exists (path, FileExists)
36 if (FileExists)
37 open_file (path, ‘input’, FileHandle)
38 fread_string (FileHandle, OutString3, IsEOF3)
39 close_file (FileHandle)
40 delete_file (path)
41 endif
第15行close_file 之后,1.txt中内容为: