Einzelnen Beitrag anzeigen

Benutzerbild von DGL-luke
DGL-luke

Registriert seit: 1. Apr 2005
Ort: Bad Tölz
4.149 Beiträge
 
Delphi 2006 Professional
 
#1

Einfache String-/String-Beziehung (Dictionary / Map)

  Alt 23. Jun 2007, 10:36
Hallo,

wenn man eine Art Wörterbuch bauen will, das heißt, eine Liste mit String-Paaren, kann man zu sehr mächtigen Datenstrukturen greifen, wie einer Hashmap oder binären Bäumen.

Sehr einfach geht es aber mit der in Delphi eingebauten TStringList, die Schlüssel und Wert per '=' trennt und einfach in der Stringliste ablegt:

Delphi-Quellcode:
//Variablendeklaration
var
  Map: TStringList;
  Idx: Integer;
  s: string;
begin
  //Erzeugen der Stringlist
  Map := TStringList.Create;

  try
    //Eintragungen
    Map.Add('Delphi=Cool');
    Map.Add('Cpp=Auch Cool');
    Map.Add('Java=Nicht ganz so cool');

    //Einen Eintrag suchen
    Showmessage(Map.Values['Delphi']);
  finally
    Map.Free;
  end;
end;
Interessante Eigenschaften der Stringliste in dem Zusammenhang:
Delphi-Referenz durchsuchenNameValueSeparator - Standardmäßig trennt ein '=' Schlüssel und Wert, das kann aber umgestellt werden
Delphi-Referenz durchsuchenSorted - Wenn die Liste sortiert ist, kann eine binäre Suche darüber ausgeführt werden.

EDIT: Die TStringList verwendet leider die binäre Suche nicht für den Zugriff per Values.

[edit=CalganX]Code-Style angepasst. Mfg, CalganX[/edit]
Lukas Erlacher
Suche Grafiktablett. Spenden/Gebrauchtangebote willkommen.
Gotteskrieger gesucht!
For it is the chief characteristic of the religion of science that it works. - Isaac Asimov, Foundation I, Buch 1
  Mit Zitat antworten Zitat