Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Library: Object-Pascal / Delphi-Language (https://www.delphipraxis.net/35-library-object-pascal-delphi-language/)
-   -   Delphi Einfache String-/String-Beziehung (Dictionary / Map) (https://www.delphipraxis.net/94559-einfache-string-string-beziehung-dictionary-map.html)

DGL-luke 23. Jun 2007 10:36


Einfache String-/String-Beziehung (Dictionary / Map)
 
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]


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:17 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz