halcon-文件操作
作者:互联网
在HDevelop中
open_file('D:/bb/1.txt','output',FileHandle) *打开文件 *参数1:文件名称 *参数2:文件访问类型 * 'input' 已存在的输入文件将以文本格式打开读取,该文件打开以后,将不能再往里面写东西 * 'output' 将打开一个新的输出文件,以便以文本格式写入,如果有同名文件,则原文件将先被删除 * 'append' 已存在的输出文件将以文本格式在文件末尾打开以供写入 * 'input_binary' 已存在的输入文件将以二进制格式打开读取 * 'output_binary' 打开一个新的输出文件,以二进制格式写入 * 'append_binary' 已存在的输出文件将以二进制格式在文件末尾打开以供写入 *对于文本文件,传递给FileType的元组可以通过以下编码设置之一进行扩展: *'utf8_encoding' 文件中的字符串以UTF-8编码。这是默认值,因此对于UTF-8编码文件 * 和所有仅使用纯7位US-ASCII字符的文件,可以忽略此值 *'locale_encoding' 文件中的字符串采用本地8位编码,这取决于系统的当前语言环境设置 *'ignore_encoding' 不处理从文件中读取或写入的字符串的编码。在这种模式下,多字节字符 既不被处理也不被解释。此外,字符串不会被转码到HALCON库的当前编码中或从中转码 * *参数3:文件句柄 * fwrite_string (FileHandle, 'hallo') *将一个或多个字符串或数字写入 *参数1:文件句柄 *参数2:要写入文件的值 fwrite_string (FileHandle, ',world') fnew_line (FileHandle) *写一个换行符并清除输出缓冲区 fwrite_string (FileHandle, '886') close_file (FileHandle) *关闭文本文件 ********************************************************* open_file ('D:/bb/1.txt', 'input', FileHandle) fread_char (FileHandle, Char) *一次读取一个字符。如果一直重复读到末尾,Char的值为'eof'(结束标记) *注意:不识别中文 while(1) if(Char='eof') break endif wait_seconds (1) fread_char (FileHandle, Char) endwhile close_file (FileHandle) ****************************************************** open_file ('D:/bb/1.txt', 'input', FileHandle) while(1) fread_line (FileHandle, OutLine, IsEOF) *读取一行,包括换行符 *从当前文件位置开始,在文件末尾或找到第一个换行符时结束,文件的后续读取操作将在换行后开始,即在下一行的开头 *到达文件末尾,参数IsEOF将返回值1,否则返回0 *参数2:保存读取的一行文本 if(IsEOF=1) break endif wait_seconds (2) endwhile close_file (FileHandle) *************************************************** open_file ('D:/bb/1.txt', 'input', FileHandle) while(1) fread_string (FileHandle, OutLine, IsEOF) *读取一行,不包括换行符 *从当前文件位置开始,在文件末尾或找到第一个换行符时结束,文件的后续读取操作将在换行后开始,即在下一行的开头 *到达文件末尾,参数IsEOF将返回值1,否则返回0 *参数2:保存读取的一行文本 if(IsEOF=1) break endif wait_seconds (2) endwhile close_file (FileHandle) file_exists ('D:/bb/1.txt', FileExists) *检查文件是否存在 *参数1:文件路径 *参数2:如果存在返回TRUE,否则返回FALSE
在QtCreator中
HTuple hv_FileHandle, hv_Char, hv_OutLine, hv_IsEOF; HTuple hv_FileExists; OpenFile("D:/bb/1.txt", "output", &hv_FileHandle); //打开文件 //参数1:文件名称 //参数2:文件访问类型 // 'input' 已存在的输入文件将以文本格式打开读取,该文件打开以后,将不能再往里面写东西 // 'output' 将打开一个新的输出文件,以便以文本格式写入,如果有同名文件,则原文件将先被删除 // 'append' 已存在的输出文件将以文本格式在文件末尾打开以供写入 // 'input_binary' 已存在的输入文件将以二进制格式打开读取 // 'output_binary' 打开一个新的输出文件,以二进制格式写入 // 'append_binary' 已存在的输出文件将以二进制格式在文件末尾打开以供写入 //对于文本文件,传递给FileType的元组可以通过以下编码设置之一进行扩展: //'utf8_encoding' 文件中的字符串以UTF-8编码。这是默认值,因此对于UTF-8编码文件 // 和所有仅使用纯7位US-ASCII字符的文件,可以忽略此值 //'locale_encoding' 文件中的字符串采用本地8位编码,这取决于系统的当前语言环境设置 //'ignore_encoding' 不处理从文件中读取或写入的字符串的编码。在这种模式下,多字节字符 // 既不被处理也不被解释。此外,字符串不会被转码到HALCON库的当前编码中或从中转码 // //参数3:文件句柄 FwriteString(hv_FileHandle, "hallo"); //将一个或多个字符串或数字写入 //参数1:文件句柄 //参数2:要写入文件的值 FwriteString(hv_FileHandle, HTuple(",world")); FnewLine(hv_FileHandle); //写一个换行符并清除输出缓冲区 FwriteString(hv_FileHandle, "886"); CloseFile(hv_FileHandle); //关闭文本文件 //******************************************************** OpenFile("D:/bb/1.txt", "input", &hv_FileHandle); FreadChar(hv_FileHandle, &hv_Char); //一次读取一个字符。如果一直重复读到末尾,Char的值为'eof'(结束标记) //注意:不识别中文 while (0 != 1) { if (0 != (hv_Char==HTuple("eof"))) { break; } WaitSeconds(1); FreadChar(hv_FileHandle, &hv_Char); } CloseFile(hv_FileHandle); //***************************************************** OpenFile("D:/bb/1.txt", "input", &hv_FileHandle); while (0 != 1) { FreadLine(hv_FileHandle, &hv_OutLine, &hv_IsEOF); //读取一行,包括换行符 //从当前文件位置开始,在文件末尾或找到第一个换行符时结束,文件的后续读取操作将在换行后开始,即在下一行的开头 //到达文件末尾,参数IsEOF将返回值1,否则返回0 //参数2:保存读取的一行文本 if (0 != (hv_IsEOF==1)) { break; } WaitSeconds(2); } CloseFile(hv_FileHandle); //************************************************** OpenFile("D:/bb/1.txt", "input", &hv_FileHandle); while (0 != 1) { FreadString(hv_FileHandle, &hv_OutLine, &hv_IsEOF); //读取一行,不包括换行符 //从当前文件位置开始,在文件末尾或找到第一个换行符时结束,文件的后续读取操作将在换行后开始,即在下一行的开头 //到达文件末尾,参数IsEOF将返回值1,否则返回0 //参数2:保存读取的一行文本 if (0 != (hv_IsEOF==1)) { break; } WaitSeconds(2); } CloseFile(hv_FileHandle); FileExists("D:/bb/1.txt", &hv_FileExists); //检查文件是否存在 //参数1:文件路径 //参数2:如果存在返回TRUE,否则返回FALSE
标签:文件,读取,IsEOF,hv,halcon,参数,操作,FileHandle 来源: https://www.cnblogs.com/liming19680104/p/15907164.html