ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

halcon-文件操作

2022-02-18 09:04:40  阅读:214  来源: 互联网

标签:文件 读取 IsEOF hv halcon 参数 操作 FileHandle


 

在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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有