#include #include #include ; Crée un dictionnaire vide Func _DictionaryCreate() Local $Dict = ObjCreate("Scripting.Dictionary") Return $Dict EndFunc ; Ajoute une paire clé-valeur au dictionnaire Func _DictionaryAdd(ByRef $Dict, $Key, $Value) If Not IsObj($Dict) Then Return SetError(1, 0, 0) ; Vérifie si $Dict est un objet Dictionary $Dict.Add($Key, $Value) EndFunc ; Récupère la valeur associée à une clé Func _DictionaryGet(ByRef $Dict, $Key) If Not IsObj($Dict) Then Return SetError(1, 0, 0) ; Vérifie si $Dict est un objet Dictionary If $Dict.Exists($Key) Then Return $Dict.Item($Key) Else Return SetError(2, 0, 0) ; Clé non trouvée EndIf EndFunc ; Supprime une paire clé-valeur du dictionnaire Func _DictionaryRemove(ByRef $Dict, $Key) If Not IsObj($Dict) Then Return SetError(1, 0, 0) ; Vérifie si $Dict est un objet Dictionary If $Dict.Exists($Key) Then $Dict.Remove($Key) Else Return SetError(2, 0, 0) ; Clé non trouvée EndIf EndFunc ; Vérifie si une clé existe dans le dictionnaire Func _DictionaryExists(ByRef $Dict, $Key) If Not IsObj($Dict) Then Return SetError(1, 0, 0) ; Vérifie si $Dict est un objet Dictionary Return $Dict.Exists($Key) EndFunc ; Récupère toutes les clés du dictionnaire dans un tableau Func _DictionaryGetKeys(ByRef $Dict) If Not IsObj($Dict) Then Return SetError(1, 0, 0) ; Vérifie si $Dict est un objet Dictionary Return $Dict.Keys() EndFunc ; Récupère toutes les valeurs du dictionnaire dans un tableau Func _DictionaryGetValues(ByRef $Dict) If Not IsObj($Dict) Then Return SetError(1, 0, 0) ; Vérifie si $Dict est un objet Dictionary Return $Dict.Items() EndFunc ; Renvoie le nombre de paires clé-valeur dans le dictionnaire Func _DictionaryCount(ByRef $Dict) If Not IsObj($Dict) Then Return SetError(1, 0, 0) ; Vérifie si $Dict est un objet Dictionary Return $Dict.Count() EndFunc ; Efface toutes les paires clé-valeur du dictionnaire Func _DictionaryClear(ByRef $Dict) If Not IsObj($Dict) Then Return SetError(1, 0, 0) ; Vérifie si $Dict est un objet Dictionary $Dict.RemoveAll() EndFunc ; Trie les clés par ordre alphabétique Func _DictionarySortKeys(ByRef $Dict) If Not IsObj($Dict) Then Return SetError(1, 0, 0) ; Vérifie si $Dict est un objet Dictionary Local $keysArray = _DictionaryGetKeys($Dict) If @error Then Return SetError(2, 0, 0) ; Erreur lors de la récupération des clés _ArraySort($keysArray) Return $keysArray EndFunc ; Trie les valeurs par ordre alphabétique Func _DictionarySortValues(ByRef $Dict) If Not IsObj($Dict) Then Return SetError(1, 0, 0) ; Vérifie si $Dict est un objet Dictionary Local $valuesArray = _DictionaryGetValues($Dict) If @error Then Return SetError(2, 0, 0) ; Erreur lors de la récupération des valeurs _ArraySort($valuesArray) Return $valuesArray EndFunc ; Trie les clés par ordre alphabétique inverse (décroissant) Func _DictionarySortKeysDesc(ByRef $Dict) If Not IsObj($Dict) Then Return SetError(1, 0, 0) ; Vérifie si $Dict est un objet Dictionary Local $keysArray = _DictionaryGetKeys($Dict) If @error Then Return SetError(2, 0, 0) ; Erreur lors de la récupération des clés _ArraySort($keysArray) _ArrayReverse($keysArray) Return $keysArray EndFunc ; Trie les valeurs par ordre alphabétique inverse (décroissant) Func _DictionarySortValuesDesc(ByRef $Dict) If Not IsObj($Dict) Then Return SetError(1, 0, 0) ; Vérifie si $Dict est un objet Dictionary Local $valuesArray = _DictionaryGetValues($Dict) If @error Then Return SetError(2, 0, 0) ; Erreur lors de la récupération des valeurs _ArraySort($valuesArray) _ArrayReverse($valuesArray) Return $valuesArray EndFunc ; Vérifie si une clé existe dans le dictionnaire Func _DictionaryContainsKey(ByRef $Dict, $Key) If Not IsObj($Dict) Then Return SetError(1, 0, False) Return $Dict.Exists($Key) EndFunc ; Vérifie si une valeur existe dans le dictionnaire Func _DictionaryContainsValue(ByRef $Dict, $Value) If Not IsObj($Dict) Then Return SetError(1, 0, False) Local $valuesArray = _DictionaryGetValues($Dict) If @error Then Return SetError(2, 0, False) Return _ArraySearch($valuesArray, $Value, 0, 0, 0, 0, 1) <> -1 EndFunc