ich habe eine Frage, welche Datenstruktur ich am besten für folgendes nehme:
Es gibt quasi eine feste Tabelle bestehend aus einer Zahl (Integer/Cardinal würde auch gehen) und einem zugeordenten Namen (String). Bei der Zahl handelt es sich um eine Code-Nummer, die einen Datenabschnitt (sogenannter Postcode) kennzeichnet; der Name ist einfach gedacht, damit der Mensch besser erkennt, mit was für Daten er es zu tun hat). Die Zuordnung passiert immer Nummer --> Name (niemals in die andere Richtung). Es gibt ca 200 solcher Paare, die sich auch während des Programmablaufs nicht ändern (sind so vorgegeben; wenn sich was ändern sollte, kann man es einfach nachpflegen); ich würde die daher gerne (eventuell als const) definieren.
In einem Python-Script (das ähnliches tut) habe ich das als Dictionary gelöst: die Nummer ist der Key über den auf den Namen zugegriffen werden kann. Bloß wie mache ich das unter Lazarus/FPC (und Delphi) am günstigsten?
- Ein Dictionary kann man natürlich als Variable definieren, muss die aber anschließend per Procedure/Function füllen (ich habe zumindest nicht gefunden, wie man das quasi vordefiniert). Aber man könnte wenigstens über den Key direkt an den Namen kommen.
- Eventuell würde auch eine Tabelle funktionieren, aber dann habe ich ein ähnliches Problem
- Array? Aber der Zugriff müsste dann dadurch erfolgen, dass man das ganze Array abklappert und den Key vergleicht - nicht sehr elegant! (gilt auch für die Tabelle).
- Eine Funktion in der direkt eine große case-Struktur den Namen als RETURN-Wert liefert.
Danke für jede Anregung - und bleibt gesund,
Photor