在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