Einzelnen Beitrag anzeigen

Benutzerbild von mh166
mh166

Registriert seit: 14. Nov 2004
Ort: Chemnitz
443 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#1

Sinnvollste Abbildung eines mehrdimensionalen assoziativen Arrays in Delphi?

  Alt 24. Mai 2015, 16:30
Hallo Leute,

ich bin bei einem Projekt gerade dabei bestimmte Werte (genauer gesagt: Fenstertitel, X-&Y-Koordinaten sowie einen zugehörigen String) in eine Art Array zu packen.

Um mal PHP als triviale Analogie herzunehmen:
PHP-Quellcode:
$hash['Foo'][12][27] = 'Bar';
$hash['Hello'][18][59] = 'World';
Ich denke das System ist naheliegend.

Mein Problem: wie stelle ich das am geschicktesten mit Delphi dar? Assoziative Arrays im klassischen Sinne gibt es ja nicht. Nehme ich aber ein TDictionary, sieht das am Ende gruselig aus: var hash: TDictionary<String, TDictionary<Integer, TDictionary<Integer, String>>>; Das kann ja nun auch nicht des Rätsels Lösung sein. Hoffe ich.

Nun ist die Frage: wie kann ich am einfachsten oder am elegantesten einem Key über (Fenstertitel, X, Y) den Wert (String) zuordnen?

Wenn alles nichts hilft habe ich schon über sowas nachgedacht:
Delphi-Quellcode:
hash := TDictionary<String, String>.Create;
hash.Add('Foo_12_27', 'Bar');
Ist zwar nicht das Eleganteste, aber funktioniert immerhin recht einfach. Schließlich sollen die drei Parameter ja nur einen Key bilden. Alles in einem Array (oder etwas adäquatem) zu speichern, würde zu einem späteren Zeitpunkt die Iteration über die einzelnen Parameter vereinfachen (z.B. einen Dump von nur einem bestimmten Fenster im Hash erstellen). Aber notfalls könnte ich darauf wohl verzichten. Die meisten Zugriffe erfolgen einfach nach dem Schema Key->Value.

Vielen Dank schon mal für eure Ideen und Vorschläge!

mfg, mh166
Tiefgründige Sätze unserer Zeit:
Zitat von Luckie:
Und diesen Token zur Laufzeit zu modifizieren würde bedeuten, dass du zur laufzeit das Token ändern musst.
  Mit Zitat antworten Zitat