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

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM