fread_char
— Einlesen eines Zeichens aus einer Textdatei.
fread_char( : : FileHandle : Char)
fread_char
liest aus der Eingabedatei, die
durch das Handle FileHandle
definiert ist und mit open_file
im Textformat geöffnet worden sein muss, ein Zeichen ein.
Das eingelesene Zeichen oder der Steuerstring 'eof' wird im Parameter
Char
zurückgegeben.
Dabei wird vom Operator fread_char
das String-Encoding der Datei
berücksichtigt, es sei denn, die Datei wurde mit der Option
'ignore_encoding' geöffnet (s.a. open_file
).
Das bedeutet, dass bei korrektem Encoding der Operator
fread_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>:)
).
Wurde die Datei mit der Option 'ignore_encoding' geöffnet, und
wurden noch nicht alle Zeichen der Datei gelesen, enthält
Char
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_char
die Zeichenkette 'eof' .
Ergeben in dem angegebenen Encoding die nächsten zu lesenden Bytes kein
gültiges Zeichen, wird von fread_char
ein Low-Level-Fehler
ausgegeben.
Unabhängig von dem Low-Level-Fehler wird fread_char
normal beendet
und liefert das nächste Byte in Char
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':)
).
FileHandle
(input_control) file →
(handle)
Datei-Handle.
Char
(output_control) string →
(string)
Eingelesenes Zeichen oder Steuerstring ('eof').
* Read a text file character by character. open_file (FileName, 'input', FileHandle) repeat fread_char (FileHandle, Char) until (Char == 'eof') close_file (FileHandle)
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.
fread_string
,
read_string
,
fread_line
open_file
,
close_file
,
fread_string
,
fread_line
Foundation