fread_charT_fread_charFreadCharFreadCharfread_char (Operator)

Name

fread_charT_fread_charFreadCharFreadCharfread_char — 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()

def fread_char(file_handle: HHandle) -> str

Beschreibung

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

Das eingelesene Zeichen oder der Steuerstring 'eof' wird im Parameter CharCharCharCharcharValchar zurückgegeben. Dabei wird vom Operator fread_charfread_charFreadCharFreadCharFreadCharfread_char 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""ignore_encoding" geöffnet (s.a. open_fileopen_fileOpenFileOpenFileOpenFileopen_file). Das bedeutet, dass bei korrektem Encoding der Operator fread_charfread_charFreadCharFreadCharFreadCharfread_char 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>)set_system("filename_encoding",<encoding>)).

Wurde die Datei mit der Option 'ignore_encoding'"ignore_encoding""ignore_encoding""ignore_encoding""ignore_encoding""ignore_encoding" geöffnet, und wurden noch nicht alle Zeichen der Datei gelesen, enthält CharCharCharCharcharValchar immer genau das nächste Byte aus der Datei ohne weitere Interpretation oder Umcodierung. 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_charFreadCharFreadCharFreadCharfread_char die Zeichenkette 'eof'"eof""eof""eof""eof""eof".

Ergeben in dem angegebenen Encoding die nächsten zu lesenden Bytes kein gültiges Zeichen, wird von fread_charfread_charFreadCharFreadCharFreadCharfread_char ein Low-Level-Fehler ausgegeben. Unabhängig von dem Low-Level-Fehler wird fread_charfread_charFreadCharFreadCharFreadCharfread_char normal beendet und liefert das nächste Byte in CharCharCharCharcharValchar 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")set_system("filename_encoding","locale")).

Ausführungsinformationen

Parameter

FileHandleFileHandleFileHandleFileHandlefileHandlefile_handle (input_control)  file HFile, HTupleHHandleHTupleHtuple (handle) (IntPtr) (HHandle) (handle)

Datei-Handle.

CharCharCharCharcharValchar (output_control)  string HTuplestrHTupleHtuple (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 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_fileOpenFileOpenFileOpenFileopen_file

Nachfolger

close_fileclose_fileCloseFileCloseFileCloseFileclose_file

Alternativen

fread_stringfread_stringFreadStringFreadStringFreadStringfread_string, read_stringread_stringReadStringReadStringReadStringread_string, fread_linefread_lineFreadLineFreadLineFreadLinefread_line

Siehe auch

open_fileopen_fileOpenFileOpenFileOpenFileopen_file, close_fileclose_fileCloseFileCloseFileCloseFileclose_file, fread_stringfread_stringFreadStringFreadStringFreadStringfread_string, fread_linefread_lineFreadLineFreadLineFreadLinefread_line

Modul

Foundation