write_dictT_write_dictWriteDictWriteDictwrite_dict (Operator)
Name
write_dictT_write_dictWriteDictWriteDictwrite_dict — Abspeichern eines Dictionaries in einer Datei.
Signatur
void WriteDict(const HTuple& DictHandle, const HTuple& FileName, const HTuple& GenParamName, const HTuple& GenParamValue)
void HDict::WriteDict(const HString& FileName, const HTuple& GenParamName, const HTuple& GenParamValue) const
void HDict::WriteDict(const HString& FileName, const HString& GenParamName, const HString& GenParamValue) const
void HDict::WriteDict(const char* FileName, const char* GenParamName, const char* GenParamValue) const
void HDict::WriteDict(const wchar_t* FileName, const wchar_t* GenParamName, const wchar_t* GenParamValue) const
(Nur Windows)
Beschreibung
write_dictwrite_dictWriteDictWriteDictWriteDictwrite_dict speichert das Dictionary DictHandleDictHandleDictHandleDictHandledictHandledict_handle in
der Datei FileNameFileNameFileNameFileNamefileNamefile_name ab.
Der Operator unterstützt die Dateiformate 'hdict'"hdict""hdict""hdict""hdict""hdict"
und 'json'"json""json""json""json""json" (siehe read_dictread_dictReadDictReadDictReadDictread_dict).
Das Format wird anhand der Dateiendung oder über den generischen
Parameter 'file_type'"file_type""file_type""file_type""file_type""file_type" ausgewählt (siehe unten).
Wenn beides den Typ nicht festlegt wird 'hdict'"hdict""hdict""hdict""hdict""hdict" verwendet.
Formatbedingt können im 'json'"json""json""json""json""json"-Dateiformat nicht alle in
einem Dictionary möglichen Werte gespeichert werden.
Insbesondere können keine ikonischen Objekte und keine Handles,
die keine Dictionaries sind, gespeichert werden.
Standardmäßig wirft der Operator einen Fehler, sollte in
DictHandleDictHandleDictHandleDictHandledictHandledict_handle ein solches nicht-serialisierbares Element
enthalten sein. Dieses Verhalten kann über den
generischen Parameter 'raise_error_if_content_not_serializable'"raise_error_if_content_not_serializable""raise_error_if_content_not_serializable""raise_error_if_content_not_serializable""raise_error_if_content_not_serializable""raise_error_if_content_not_serializable"
angepasst werden (siehe unten).
Eine Reihe weiterer optionaler Parameter kann gesetzt werden.
Die Namen und Werte dieser Parameter werden in GenParamNameGenParamNameGenParamNameGenParamNamegenParamNamegen_param_name und
GenParamValueGenParamValueGenParamValueGenParamValuegenParamValuegen_param_value übergeben. Einige der Parameter gelten nicht für
alle Dateitypen. Die folgenden Werte sind für GenParamNameGenParamNameGenParamNameGenParamNamegenParamNamegen_param_name
möglich:
- 'raise_error_if_content_not_serializable'"raise_error_if_content_not_serializable""raise_error_if_content_not_serializable""raise_error_if_content_not_serializable""raise_error_if_content_not_serializable""raise_error_if_content_not_serializable":
-
Wenn DictHandleDictHandleDictHandleDictHandledictHandledict_handle einen Eintrag enthält, der im Zielformat
nicht serialisiert werden kann, bricht write_dictwrite_dictWriteDictWriteDictWriteDictwrite_dict
standardmäßig mit einer Fehlermeldung ab.
Dieses Verhalten kann durch diesen Parameter verändert werden, der
zugehörige GenParamValueGenParamValueGenParamValueGenParamValuegenParamValuegen_param_value kann folgende Werte annehmen:
- 'true'"true""true""true""true""true":
Das Standardverhalten, Fehler werden geworfen.
- 'false'"false""false""false""false""false":
Es wird kein Fehler geworfen.
Je nach Dateityp wird z.B. ein leeres Handle ('hdict') oder
gar nichts ('json') anstatt des nicht serialisierbaren Eintrags geschrieben.
- 'low_level'"low_level""low_level""low_level""low_level""low_level":
Wie bei 'false'"false""false""false""false""false", allerdings wird
bei nicht serialisierbaren Einträgen zusätzlich ein Low-Level-Fehler geworfen.
Der Umgang mit HALCON Low-Level-Fehlern wird durch 'do_low_error'"do_low_error""do_low_error""do_low_error""do_low_error""do_low_error" in
set_systemset_systemSetSystemSetSystemSetSystemset_system bestimmt.
- 'file_type'"file_type""file_type""file_type""file_type""file_type":
-
Legt das zu schreibende Dateiformat fest.
Der entsprechende Eintrag in GenParamValueGenParamValueGenParamValueGenParamValuegenParamValuegen_param_value muss auf
'hdict'"hdict""hdict""hdict""hdict""hdict" (Standardwert) oder 'json'"json""json""json""json""json" gesetzt werden.
Ist dieser Parameter nicht gesetzt, wird der Typ aus der Dateiendung
ermittelt. Ist diese nicht aussagekräftig, wird 'hdict'"hdict""hdict""hdict""hdict""hdict"
verwendet.
- 'compact_json'"compact_json""compact_json""compact_json""compact_json""compact_json":
-
Legt fest, ob JSON-Dateien in einer kompakten Schreibweise ohne
überflüssigen Whitespace oder von Menschen lesbar mit Zeilenumbrüchen
und Einrückung geschrieben werden.
In beiden Fällen enthält die Datei die gleiche inhaltliche Information.
Der entsprechende Eintrag in GenParamValueGenParamValueGenParamValueGenParamValuegenParamValuegen_param_value muss auf
'true'"true""true""true""true""true" (Standardwert) oder 'false'"false""false""false""false""false" gesetzt werden.
- 'use_json_arrays'"use_json_arrays""use_json_arrays""use_json_arrays""use_json_arrays""use_json_arrays":
Legt fest, ob beim Schreiben von JSON-Dateien versucht werden soll,
Dictionaries wenn möglich als JSON-Arrays zu schreiben.
Dafür müssen die Dictionaries lediglich Integer-Schlüssel in von null an
aufsteigender Reihenfolge beinhalten.
Der entsprechende Eintrag in GenParamValueGenParamValueGenParamValueGenParamValuegenParamValuegen_param_value muss auf
'true'"true""true""true""true""true" (Standardwert) oder 'false'"false""false""false""false""false" gesetzt werden.
Ausführungsinformationen
- Multithreading-Typ: independent (läuft parallel auch zu exklusiven Operatoren).
- Multithreading-Bereich: global (kann von jedem Thread aufgerufen werden).
- Wird ohne Parallelisierung verarbeitet.
Parameter
DictHandleDictHandleDictHandleDictHandledictHandledict_handle (input_control) dict → HDict, HTupleHHandleHTupleHtuple (handle) (IntPtr) (HHandle) (handle)
Handle des Dictionaries.
Parameteranzahl: DictHandle == 1
FileNameFileNameFileNameFileNamefileNamefile_name (input_control) filename.write → HTuplestrHTupleHtuple (string) (string) (HString) (char*)
Dateiname der zu lesenden Datei.
Dateiendung: .hdict
GenParamNameGenParamNameGenParamNameGenParamNamegenParamNamegen_param_name (input_control) attribute.name(-array) → HTupleMaybeSequence[str]HTupleHtuple (string) (string) (HString) (char*)
Name des generischen Parameters.
Defaultwert: []
Werteliste: 'compact_json'"compact_json""compact_json""compact_json""compact_json""compact_json", 'file_type'"file_type""file_type""file_type""file_type""file_type", 'raise_error_if_content_not_serializable'"raise_error_if_content_not_serializable""raise_error_if_content_not_serializable""raise_error_if_content_not_serializable""raise_error_if_content_not_serializable""raise_error_if_content_not_serializable", 'use_json_arrays'"use_json_arrays""use_json_arrays""use_json_arrays""use_json_arrays""use_json_arrays"
GenParamValueGenParamValueGenParamValueGenParamValuegenParamValuegen_param_value (input_control) attribute.name(-array) → HTupleMaybeSequence[Union[int, float, str]]HTupleHtuple (string / integer / real) (string / int / long / double) (HString / Hlong / double) (char* / Hlong / double)
Wert des generischen Parameters.
Defaultwert: []
Wertevorschläge: 'hdict'"hdict""hdict""hdict""hdict""hdict", 'json'"json""json""json""json""json", 'true'"true""true""true""true""true", 'false'"false""false""false""false""false", 'low_level'"low_level""low_level""low_level""low_level""low_level"
Ergebnis
Sind die Parameterwerte korrekt, dann liefert write_dictwrite_dictWriteDictWriteDictWriteDictwrite_dict den
Wert 2 (H_MSG_TRUE). Gegebenenfalls wird eine Fehlerbehandlung durchgeführt.
Vorgänger
read_dictread_dictReadDictReadDictReadDictread_dict,
deserialize_handledeserialize_handleDeserializeHandleDeserializeHandleDeserializeHandledeserialize_handle,
create_dictcreate_dictCreateDictCreateDictCreateDictcreate_dict
Nachfolger
read_dictread_dictReadDictReadDictReadDictread_dict,
create_dictcreate_dictCreateDictCreateDictCreateDictcreate_dict
Siehe auch
read_dictread_dictReadDictReadDictReadDictread_dict,
serialize_handleserialize_handleSerializeHandleSerializeHandleSerializeHandleserialize_handle,
deserialize_handledeserialize_handleDeserializeHandleDeserializeHandleDeserializeHandledeserialize_handle,
dict_to_jsondict_to_jsonDictToJsonDictToJsonDictToJsondict_to_json
Modul
Foundation