open_fileT_open_fileOpenFileOpenFile (Operator)

Name

open_fileT_open_fileOpenFileOpenFile — Öffnen einer Datei im Text- oder Binärformat.

Signatur

open_file( : : FileName, FileType : FileHandle)

Herror T_open_file(const Htuple FileName, const Htuple FileType, Htuple* FileHandle)

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)

static void HOperatorSet.OpenFile(HTuple fileName, HTuple fileType, out HTuple fileHandle)

public HFile(string fileName, HTuple fileType)

public HFile(string fileName, string fileType)

void HFile.OpenFile(string fileName, HTuple fileType)

void HFile.OpenFile(string fileName, string fileType)

Beschreibung

open_fileopen_fileOpenFileOpenFileOpenFile öffnet eine Datei im Text- oder im Binärformat. Der Name der Datei wird im Parameter FileNameFileNameFileNameFileNamefileName übergeben. Der Operator gibt einen Handle auf die Datei in FileHandleFileHandleFileHandleFileHandlefileHandle zurück. Mit dem Parameter FileTypeFileTypeFileTypeFileTypefileType 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 FileTypeFileTypeFileTypeFileTypefileType werden unterstützt:

'input'"input""input""input""input":

Öffnet eine bereits vorhandene Eingabedatei im Textformat lesend.

'output'"output""output""output""output":

Öffnet eine neue Ausgabedatei im Textformat schreibend.

'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":

Öffnet eine bereits vorhandene Eingabedatei im Binärformat lesend.

'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":

Öffnet eine bereits vorhandene Ausgabedatei im Binärformat am Ende der Datei schreibend.

Das an FileTypeFileTypeFileTypeFileTypefileType übergebene Tupel kann bei Textdateien als zweites Element einen der folgenden Encoding-Einstellungen enthalten:

'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":

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":

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_charFreadCharFreadCharFreadChar in diesem Modus immer genau ein Byte zurückliefert, und die Operatoren fread_linefread_lineFreadLineFreadLineFreadLine und fread_stringfread_stringFreadStringFreadStringFreadString 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" ('input'"input""input""input""input" und 'output'"output""output""output""output") und 'error'"error""error""error""error" (nur 'output'"output""output""output""output") reserviert.

Ausführungsinformationen

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

FileNameFileNameFileNameFileNamefileName (input_control)  filename HTupleHTupleHtuple (string) (string) (HString) (char*)

Name der zu öffnenden Datei.

Defaultwert: 'standard' "standard" "standard" "standard" "standard"

Wertevorschläge: 'standard'"standard""standard""standard""standard", 'error'"error""error""error""error", '/tmp/dat.dat'"/tmp/dat.dat""/tmp/dat.dat""/tmp/dat.dat""/tmp/dat.dat"

FileTypeFileTypeFileTypeFileTypefileType (input_control)  string(-array) HTupleHTupleHtuple (string) (string) (HString) (char*)

Art des Dateizugriffs und ggf. das String-Encoding.

Defaultwert: 'output' "output" "output" "output" "output"

Werteliste: 'append'"append""append""append""append", 'append_binary'"append_binary""append_binary""append_binary""append_binary", 'ignore_encoding'"ignore_encoding""ignore_encoding""ignore_encoding""ignore_encoding", 'input'"input""input""input""input", 'input_binary'"input_binary""input_binary""input_binary""input_binary", 'locale_encoding'"locale_encoding""locale_encoding""locale_encoding""locale_encoding", 'output'"output""output""output""output", 'output_binary'"output_binary""output_binary""output_binary""output_binary", 'utf8_encoding'"utf8_encoding""utf8_encoding""utf8_encoding""utf8_encoding"

FileHandleFileHandleFileHandleFileHandlefileHandle (output_control)  file HFile, HTupleHTupleHtuple (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_fileOpenFileOpenFileOpenFile den Wert 2 (H_MSG_TRUE). Gegebenenfalls wird eine Exception-Behandlung durchgeführt.

Nachfolger

fwrite_stringfwrite_stringFwriteStringFwriteStringFwriteString, fread_charfread_charFreadCharFreadCharFreadChar, fread_stringfread_stringFreadStringFreadStringFreadString, fread_linefread_lineFreadLineFreadLineFreadLine, fread_serialized_itemfread_serialized_itemFreadSerializedItemFreadSerializedItemFreadSerializedItem, fwrite_serialized_itemfwrite_serialized_itemFwriteSerializedItemFwriteSerializedItemFwriteSerializedItem, fread_bytesfread_bytesFreadBytesFreadBytesFreadBytes, fwrite_bytesfwrite_bytesFwriteBytesFwriteBytesFwriteBytes, close_fileclose_fileCloseFileCloseFileCloseFile

Siehe auch

close_fileclose_fileCloseFileCloseFileCloseFile

Modul

Foundation