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_dictWriteDictWriteDictwrite_dict speichert das Dictionary DictHandleDictHandleDictHandledictHandledict_handle in
der Datei FileNameFileNameFileNamefileNamefile_name ab.
Der Operator unterstützt die Dateiformate 'hdict'"hdict""hdict""hdict""hdict"
und 'json'"json""json""json""json" (siehe read_dictread_dictReadDictReadDictread_dict).
Das Format wird anhand der Dateiendung oder über den generischen
Parameter '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" verwendet.
Formatbedingt können im '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
DictHandleDictHandleDictHandledictHandledict_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"
angepasst werden (siehe unten).
Eine Reihe weiterer optionaler Parameter kann gesetzt werden.
Die Namen und Werte dieser Parameter werden in GenParamNameGenParamNameGenParamNamegenParamNamegen_param_name und
GenParamValueGenParamValueGenParamValuegenParamValuegen_param_value übergeben. Einige der Parameter gelten nicht für
alle Dateitypen. Die folgenden Werte sind für GenParamNameGenParamNameGenParamNamegenParamNamegen_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":
-
Wenn DictHandleDictHandleDictHandledictHandledict_handle einen Eintrag enthält, der im Zielformat
nicht serialisiert werden kann, bricht write_dictwrite_dictWriteDictWriteDictwrite_dict
standardmäßig mit einer Fehlermeldung ab.
Dieses Verhalten kann durch diesen Parameter verändert werden, der
zugehörige GenParamValueGenParamValueGenParamValuegenParamValuegen_param_value kann folgende Werte annehmen:
- 'true'"true""true""true""true":
Das Standardverhalten, Fehler werden geworfen.
- '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":
Wie bei '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" in
set_systemset_systemSetSystemSetSystemset_system bestimmt.
- 'file_type'"file_type""file_type""file_type""file_type":
-
Legt das zu schreibende Dateiformat fest.
Der entsprechende Eintrag in GenParamValueGenParamValueGenParamValuegenParamValuegen_param_value muss auf
'hdict'"hdict""hdict""hdict""hdict" (Standardwert) oder '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"
verwendet.
- '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 GenParamValueGenParamValueGenParamValuegenParamValuegen_param_value muss auf
'true'"true""true""true""true" (Standardwert) oder 'false'"false""false""false""false" gesetzt werden.
- '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 GenParamValueGenParamValueGenParamValuegenParamValuegen_param_value muss auf
'true'"true""true""true""true" (Standardwert) oder '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
DictHandleDictHandleDictHandledictHandledict_handle (input_control) dict → HDict, HTupleHHandleHTupleHtuple (handle) (IntPtr) (HHandle) (handle)
Handle des Dictionaries.
Parameteranzahl:
DictHandle == 1
FileNameFileNameFileNamefileNamefile_name (input_control) filename.write → HTuplestrHTupleHtuple (string) (string) (HString) (char*)
Dateiname der zu lesenden Datei.
Dateiendung:
.hdict
GenParamNameGenParamNameGenParamNamegenParamNamegen_param_name (input_control) attribute.name(-array) → HTupleMaybeSequence[str]HTupleHtuple (string) (string) (HString) (char*)
Name des generischen Parameters.
Default:
[]
Werteliste:
'compact_json'"compact_json""compact_json""compact_json""compact_json", '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", 'use_json_arrays'"use_json_arrays""use_json_arrays""use_json_arrays""use_json_arrays"
GenParamValueGenParamValueGenParamValuegenParamValuegen_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.
Default:
[]
Wertevorschläge:
'hdict'"hdict""hdict""hdict""hdict", 'json'"json""json""json""json", 'true'"true""true""true""true", 'false'"false""false""false""false", 'low_level'"low_level""low_level""low_level""low_level"
Ergebnis
Sind die Parameterwerte korrekt, dann liefert write_dictwrite_dictWriteDictWriteDictwrite_dict den
Wert 2 (
H_MSG_TRUE)
. Gegebenenfalls wird eine Fehlerbehandlung durchgeführt.
Vorgänger
read_dictread_dictReadDictReadDictread_dict,
deserialize_handledeserialize_handleDeserializeHandleDeserializeHandledeserialize_handle,
create_dictcreate_dictCreateDictCreateDictcreate_dict
Nachfolger
read_dictread_dictReadDictReadDictread_dict,
create_dictcreate_dictCreateDictCreateDictcreate_dict
Siehe auch
read_dictread_dictReadDictReadDictread_dict,
serialize_handleserialize_handleSerializeHandleSerializeHandleserialize_handle,
deserialize_handledeserialize_handleDeserializeHandleDeserializeHandledeserialize_handle,
dict_to_jsondict_to_jsonDictToJsonDictToJsondict_to_json
Modul
Foundation