1.1 打开文件
open_file()
——用以打开文件
函数原型:open_file( : : FileName
, FileType
: FileHandle
)
参数列表
FileName:文件的路径和名称。
FileHandle:第三个是文件的句柄
FileType:文件类型,可以决定打开文件的方式。
有下面几种选择:
‘input’:打开已经存在的文件,以ASCII格式读取。也就是说这个文件需要在路径下存在,而且使用该类型是不能写入,只能读取。
‘output’:打开一个新的文件,以ASCII格式写入。不存在文件时将创建一个。
‘append’:已经存在的输出文件在文件末尾打开,以ASCII格式写入。在一个已经存在的文件末尾写入,不会新建文件。
‘input_binary’:打开已经存在的文件,以二进制格式读取。也就是说这个文件需要在路径下存在,而且使用该类型是不能写入,只能读取。
‘output_binary’:打开一个新的文件,以二进制格式写入。不存在文件时将创建一个。
‘append_binary’:已经存在的输出文件在文件末尾打开,以二进制格式写入。在一个已经存在的文件末尾写入,不会新建文件。
1.2写入文件
fwrite_string()——写入文件
函数原型:fwrite_string
( : : FileHandle, String : )
第一个参数就是open_file()的输出,第二个参数为要写入的字符串,
官方示例:
fwrite_string(FileHandle,['text with numbers:',5,' and ',1.0])
输出为:
text with numbers:5 and 1.00000
当要输出的内容不是单个的字符串、数字或变量的时候,要用[]括起来,剩下的和C++的输出流有相似的地方,字符串加”,字符串与变量或数字区分用“,”只是在C++中我们使用流运算符<<。
fnew_line(FileHandle)用以换行
例如:
open_file ('D:/文件.txt', 'output', FileHandle)
fwrite_string(FileHandle,'变量1:')
fwrite_string(FileHandle,angle)fnew_line(FileHandle)
1.3遍历文件夹
list_files — 遍历目录中的所有文件
函数原型:list_files( : : Directory, Options : Files)
参数:
Directory(input_control):目录(文件夹路径)
Options(input_control):处理选项
默认值: ‘files’
建议值:
‘files’ 指定搜索的格式为文件
‘files’ ‘directories’ 指定搜索的格式为文件夹
‘files’ ‘recursive’ 指定可以遍历子文件夹下的文件
‘files’ ‘follow_links’
‘files’ ‘max_depth 5’ 指定遍历的深度
‘files’ ‘max_files 1000’ 指定遍历的最大文件数目
Files(output_control):文件(文件的路径)
1.4文件格式筛选
函数原型:tuple_regexp_select( : : Data, Expression : Selection)
参数:
Data:被选择的文件路径数组
Expression:文件格式的筛选规则
//. 转义 .
(bmp|JPG) 筛选的文件格式
‘ignore_case’ 忽略大小写
Selection:选择出的文件路径数组
示例:
1: * 遍历文件夹E:/halcon/study
2: list_files ('D:/halcon/study', ['files','follow_links'], ImageFiles)
3:
4: * 来筛选bmp或jpg格式的文件
5: tuple_regexp_select (ImageFiles, ['\\.(bmp|jpg)$','ignore_case'], ImageFiles)
6:
7: * 依次读取图片
8: for Index := 0 to |ImageFiles| - 1 by 1
9: read_image (Image, ImageFiles[Index])
10:
11: endfor