open_fileT_open_fileOpenFileOpenFileopen_file (Operator)
Name
open_fileT_open_fileOpenFileOpenFileopen_file — Öffnen einer Datei im Text- oder Binärformat.
Signatur
void OpenFile(const HTuple& FileName, const HTuple& FileType, HTuple* FileHandle)
void HFile::HFile(const HString& FileName, const HTuple& FileType)
void HFile::HFile(const HString& FileName, const HString& FileType)
void HFile::HFile(const char* FileName, const char* FileType)
void HFile::HFile(const wchar_t* FileName, const wchar_t* FileType)
(Nur Windows)
void HFile::OpenFile(const HString& FileName, const HTuple& FileType)
void HFile::OpenFile(const HString& FileName, const HString& FileType)
void HFile::OpenFile(const char* FileName, const char* FileType)
void HFile::OpenFile(const wchar_t* FileName, const wchar_t* FileType)
(Nur Windows)
Beschreibung
open_fileopen_fileOpenFileOpenFileOpenFileopen_file öffnet eine Datei im Text- oder im Binärformat.
Der Name der Datei wird im Parameter FileNameFileNameFileNameFileNamefileNamefile_name übergeben.
Der Operator gibt einen Handle auf die Datei in FileHandleFileHandleFileHandleFileHandlefileHandlefile_handle zurück.
Mit dem Parameter FileTypeFileTypeFileTypeFileTypefileTypefile_type wird der Typ der Datei bestimmt.
Für Textdateien kann zusammen mit dem Typ auch das Encoding der Datei
spezifiziert werden, dabei wird neben UTF-8 nur das jeweils lokale
8-Bit-Encoding unterstützt.
Die folgenden Einstellungen für FileTypeFileTypeFileTypeFileTypefileTypefile_type werden unterstützt:
- 'input'"input""input""input""input""input":
-
Öffnet eine bereits vorhandene Eingabedatei im Textformat lesend.
- 'output'"output""output""output""output""output":
-
Öffnet eine neue Ausgabedatei im Textformat schreibend.
- 'append'"append""append""append""append""append":
-
Öffnet eine bereits vorhandene Ausgabedatei im Textformat
am Ende der Datei schreibend.
- 'input_binary'"input_binary""input_binary""input_binary""input_binary""input_binary":
-
Öffnet eine bereits vorhandene Eingabedatei im Binärformat lesend.
- 'output_binary'"output_binary""output_binary""output_binary""output_binary""output_binary":
-
Öffnet eine neue Ausgabedatei im Binärformat schreibend.
- 'append_binary'"append_binary""append_binary""append_binary""append_binary""append_binary":
-
Öffnet eine bereits vorhandene Ausgabedatei im Binärformat am Ende der
Datei schreibend.
Das an FileTypeFileTypeFileTypeFileTypefileTypefile_type übergebene Tupel kann bei Textdateien als zweites
Element einen der folgenden Encoding-Einstellungen enthalten:
- 'utf8_encoding'"utf8_encoding""utf8_encoding""utf8_encoding""utf8_encoding""utf8_encoding":
-
Zeichenketten werden in der Datei mit UTF-8 kodiert.
Das ist der Standard, d.h. beim Öffnen von Dateien, die UTF-8 kodiert
sind oder die nur reine ASCII-Zeichen enthalten, braucht
das Encoding nicht angegeben werden.
- 'locale_encoding'"locale_encoding""locale_encoding""locale_encoding""locale_encoding""locale_encoding":
-
Zeichenketten werden in der Datei mit dem lokalen 8-Bit-Encoding
kodiert.
Dieses hängt vom verwendeten Betriebssystem und der eingestellten
Lokalisierung ab.
Mögliche Encodings sind hier z.B. unter Windows die Codepages 1252
(Microsoft-Variante von Latin-1) oder 932 (Shift-JIS) und unter
Linux die Locales en_US.utf8, de_DE.iso885915 oder ja_JP.sjis.
- 'ignore_encoding'"ignore_encoding""ignore_encoding""ignore_encoding""ignore_encoding""ignore_encoding":
-
Das Encoding der Strings, die aus der Datei gelesen oder in sie
geschrieben werden, wird nicht berücksichtigt.
In diesem Modus werden Multi-Byte-Zeichen weder behandelt noch
interpretiert, was bedeutet, dass der Operator fread_charfread_charFreadCharFreadCharFreadCharfread_char in
diesem Modus immer genau ein Byte zurückliefert, und die Operatoren
fread_linefread_lineFreadLineFreadLineFreadLinefread_line und fread_stringfread_stringFreadStringFreadStringFreadStringfread_string keine
lokalisierungsabhängigen Trennzeichen berücksichtigen.
Schließlich werden die Strings auch nicht in das aktuelle
Encoding der HALCON-Bibliothek umkodiert.
Hinweis: Die Strings werden dennoch in das Encoding der HALCON C/C++
Schnittstelle umcodiert, wenn sich das Encoding der Schnittstelle von
dem der HALCON-Bibliothek unterscheidet. Für HDevelop Skripte ist das
Encoding immer UTF-8. Um eine Umcodierung in HDevelop zu vermeiden,
sollte das Encoding der HALCON-Bibliothek UTF-8 sein.
Für Aus- und Eingaben auf dem Terminal sind die Dateinamen
'standard'"standard""standard""standard""standard""standard" ('input'"input""input""input""input""input" und 'output'"output""output""output""output""output") und
'error'"error""error""error""error""error" (nur 'output'"output""output""output""output""output") reserviert.
Ausführungsinformationen
- Multithreading-Typ: reentrant (läuft parallel zu nicht-exklusiven Operatoren).
- Multithreading-Bereich: global (kann von jedem Thread aufgerufen werden).
- Wird ohne Parallelisierung verarbeitet.
Dieser Operator liefert ein Handle zurück. Es ist zu beachten, dass der Zustand einer Instanz dieses Handletyps durch bestimmte Operatoren geändert werden kann, obwohl das Handle als Eingabeparameter in diesen Operatoren verwendet wird.
Parameter
FileNameFileNameFileNameFileNamefileNamefile_name (input_control) filename → HTuplestrHTupleHtuple (string) (string) (HString) (char*)
Name der zu öffnenden Datei.
Defaultwert:
'standard'
"standard"
"standard"
"standard"
"standard"
"standard"
Wertevorschläge: 'standard'"standard""standard""standard""standard""standard", 'error'"error""error""error""error""error", '/tmp/dat.dat'"/tmp/dat.dat""/tmp/dat.dat""/tmp/dat.dat""/tmp/dat.dat""/tmp/dat.dat"
FileTypeFileTypeFileTypeFileTypefileTypefile_type (input_control) string(-array) → HTupleMaybeSequence[str]HTupleHtuple (string) (string) (HString) (char*)
Art des Dateizugriffs und ggf. das String-Encoding.
Defaultwert:
'output'
"output"
"output"
"output"
"output"
"output"
Werteliste: 'append'"append""append""append""append""append", 'append_binary'"append_binary""append_binary""append_binary""append_binary""append_binary", 'ignore_encoding'"ignore_encoding""ignore_encoding""ignore_encoding""ignore_encoding""ignore_encoding", 'input'"input""input""input""input""input", 'input_binary'"input_binary""input_binary""input_binary""input_binary""input_binary", 'locale_encoding'"locale_encoding""locale_encoding""locale_encoding""locale_encoding""locale_encoding", 'output'"output""output""output""output""output", 'output_binary'"output_binary""output_binary""output_binary""output_binary""output_binary", 'utf8_encoding'"utf8_encoding""utf8_encoding""utf8_encoding""utf8_encoding""utf8_encoding"
FileHandleFileHandleFileHandleFileHandlefileHandlefile_handle (output_control) file → HFile, HTupleHHandleHTupleHtuple (handle) (IntPtr) (HHandle) (handle)
Datei-Handle.
Beispiel (HDevelop)
* Creating an output text file with the name '/tmp/log.txt' and writing
* of a string:
open_file('/tmp/log.txt','output',FileHandle)
fwrite_string(FileHandle,'these are the first and last lines')
fnew_line(FileHandle)
close_file(FileHandle)
Ergebnis
Sind die Parameterwerte korrekt, dann liefert open_fileopen_fileOpenFileOpenFileOpenFileopen_file
den Wert TRUE.
Gegebenenfalls wird eine Exception-Behandlung durchgeführt.
Nachfolger
fwrite_stringfwrite_stringFwriteStringFwriteStringFwriteStringfwrite_string,
fread_charfread_charFreadCharFreadCharFreadCharfread_char,
fread_stringfread_stringFreadStringFreadStringFreadStringfread_string,
fread_linefread_lineFreadLineFreadLineFreadLinefread_line,
fread_serialized_itemfread_serialized_itemFreadSerializedItemFreadSerializedItemFreadSerializedItemfread_serialized_item,
fwrite_serialized_itemfwrite_serialized_itemFwriteSerializedItemFwriteSerializedItemFwriteSerializedItemfwrite_serialized_item,
fread_bytesfread_bytesFreadBytesFreadBytesFreadBytesfread_bytes,
fwrite_bytesfwrite_bytesFwriteBytesFwriteBytesFwriteBytesfwrite_bytes,
close_fileclose_fileCloseFileCloseFileCloseFileclose_file
Siehe auch
close_fileclose_fileCloseFileCloseFileCloseFileclose_file
Modul
Foundation