fread_charT_fread_charFreadCharFreadChar (Operator)

Name

fread_charT_fread_charFreadCharFreadChar — Einlesen eines Zeichens aus einer Textdatei.

Signatur

fread_char( : : FileHandle : Char)

Herror T_fread_char(const Htuple FileHandle, Htuple* Char)

void FreadChar(const HTuple& FileHandle, HTuple* Char)

HString HFile::FreadChar() const

static void HOperatorSet.FreadChar(HTuple fileHandle, out HTuple charVal)

string HFile.FreadChar()

Beschreibung

fread_charfread_charFreadCharFreadCharFreadChar liest aus der Eingabedatei, die durch das Handle FileHandleFileHandleFileHandleFileHandlefileHandle definiert ist und mit open_fileopen_fileOpenFileOpenFileOpenFile im Textformat geöffnet worden sein muss, ein Zeichen ein.

Das eingelesene Zeichen oder der Steuerstring 'eof' wird im Parameter CharCharCharCharcharVal zurückgegeben. Dabei wird vom Operator fread_charfread_charFreadCharFreadCharFreadChar das String-Encoding der Datei berücksichtigt, es sei denn, die Datei wurde mit der Option 'ignore_encoding'"ignore_encoding""ignore_encoding""ignore_encoding""ignore_encoding" geöffnet (s.a. open_fileopen_fileOpenFileOpenFileOpenFile). Das bedeutet, dass bei korrektem Encoding der Operator fread_charfread_charFreadCharFreadCharFreadChar auch Multi-Byte-Zeichen mit einem Aufruf zurückliefert. Falls notwendig wird das Zeichen anschließend in das aktuelle Encoding der HALCON-Bibliothek umgewandelt (s.a. set_system(::'filename_encoding',<encoding>:)set_system("filename_encoding",<encoding>)SetSystem("filename_encoding",<encoding>)SetSystem("filename_encoding",<encoding>)SetSystem("filename_encoding",<encoding>)).

Wurde die Datei mit der Option 'ignore_encoding'"ignore_encoding""ignore_encoding""ignore_encoding""ignore_encoding" geöffnet, und wurden noch nicht alle Zeichen der Datei gelesen, enthält CharCharCharCharcharVal immer genau das nächste Byte aus der Datei ohne weitere Interpretation oder Umkodierung. Das kann z.B. dann sinnvoll sein, wenn eine Datei spezielle benutzerdefinierte Steuerzeichen enthält, die in einer Art Rohdaten-Modus gelesen werden sollen. Wurde das Ende der Datei erreicht und sind keine weiteren Daten verfügbar, liefert fread_charfread_charFreadCharFreadCharFreadChar die Zeichenkette 'eof'"eof""eof""eof""eof".

Ergeben in dem angegebenen Encoding die nächsten zu lesenden Bytes kein gültiges Zeichen, wird von fread_charfread_charFreadCharFreadCharFreadChar ein Low-Level-Fehler ausgegeben. Unabhängig von dem Low-Level-Fehler wird fread_charfread_charFreadCharFreadCharFreadChar normal beendet und liefert das nächste Byte in CharCharCharCharcharVal zurück. Darüber hinaus wird ein Low-Level-Fehler erzeugt, wenn das gelesene Zeichen nicht in das aktuelle Encoding der HALCON-Bibliothek umgewandelt werden kann. Dies kann nur vorkommen, wenn die Datei UTF-8-kodiert ist und die HALCON-Bibliothek das lokale Encoding verwendet (s.a. set_system(::'filename_encoding','locale':)set_system("filename_encoding","locale")SetSystem("filename_encoding","locale")SetSystem("filename_encoding","locale")SetSystem("filename_encoding","locale")).

Ausführungsinformationen

Parameter

FileHandleFileHandleFileHandleFileHandlefileHandle (input_control)  file HFile, HTupleHTupleHtuple (handle) (IntPtr) (HHandle) (handle)

Datei-Handle.

CharCharCharCharcharVal (output_control)  string HTupleHTupleHtuple (string) (string) (HString) (char*)

Eingelesenes Zeichen oder Steuerstring ('eof').

Beispiel (HDevelop)

* Read a text file character by character.
open_file (FileName, 'input', FileHandle)
repeat
    fread_char (FileHandle, Char)
until (Char == 'eof')
close_file (FileHandle)

Ergebnis

fread_char liefert den Wert 2 (H_MSG_TRUE), falls eine Eingabedatei geöffnet ist. Ansonsten wird eine Fehlerbehandlung durchgeführt. Encodingfehler haben keinen Einfluss auf den Rückgabewert.

Vorgänger

open_fileopen_fileOpenFileOpenFileOpenFile

Nachfolger

close_fileclose_fileCloseFileCloseFileCloseFile

Alternativen

fread_stringfread_stringFreadStringFreadStringFreadString, read_stringread_stringReadStringReadStringReadString, fread_linefread_lineFreadLineFreadLineFreadLine

Siehe auch

open_fileopen_fileOpenFileOpenFileOpenFile, close_fileclose_fileCloseFileCloseFileCloseFile, fread_stringfread_stringFreadStringFreadStringFreadString, fread_linefread_lineFreadLineFreadLineFreadLine

Modul

Foundation