open_fileT_open_fileOpenFileOpenFileopen_file (Operator)

Name

open_fileT_open_fileOpenFileOpenFileopen_file — Ö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)

def open_file(file_name: str, file_type: MaybeSequence[str]) -> HHandle

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

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