AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Hashtable in Delphi

Ein Thema von Cogito · begonnen am 12. Jun 2008 · letzter Beitrag vom 12. Jun 2008
Antwort Antwort
Cogito

Registriert seit: 12. Jun 2008
280 Beiträge
 
#1

Hashtable in Delphi

  Alt 12. Jun 2008, 08:37
Hallo zusammen,

kennt jemand solch eine Klasse oder Komponente?

Uwe
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.252 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Hashtable in Delphi

  Alt 12. Jun 2008, 09:13
Hai Uwe,

ersteinmal: "Herzlich Willkommen in der Delphi-PRAXiS"

Eventuell ist ja das hier etwas für dich?
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Cogito

Registriert seit: 12. Jun 2008
280 Beiträge
 
#3

Re: Hashtable in Delphi

  Alt 12. Jun 2008, 10:11
Hi Sharky,

vielen Dank für die freundliche Begrüßung!
Das sieht schon mal recht gut aus, kannst du mir mal ein Beispiel für die Nutzung geben? Bin nicht so der Delphi-Freak...
Besonders gehts mir um die Add-Methode des TStringDictionary, dort wird als 2 Parameter ein Pointer erwartet. Wie sieht das in der praktischen Nutzung aus?
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.252 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Hashtable in Delphi

  Alt 12. Jun 2008, 10:25
Ich selber habe es auch noch nicht gemacht.

Aber Du kannst ja mal den Autor fragen.
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#5

Re: Hashtable in Delphi

  Alt 12. Jun 2008, 11:17
Hallo,

Die Hashmap (oder Dictionary) speichert irgendeine Nutzerinformation 'Data' zu einem Schlüssel (hier: String). Ein Lexikon speichert ja z.B. eine Beschreibung (Data) zu einem Stichwort, ein Wörterbuch die z.B. englische Übersetzung etc.

Du bist für dieses 'Data' zu ständig.

Wenn Du z.B. eine Liste von Objekten implementieren willst, dann übergibtst Du immer eine Instanz des Objektes.

Aber wenn Du z.B. wissen willst, ob ein bestimmter Schlüssel schon verwendet wurde, dann übergibst Du einfach 'Nil'.

Grüße vom Autor.

Noch Fragen? Fragen!
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
Cogito

Registriert seit: 12. Jun 2008
280 Beiträge
 
#6

Re: Hashtable in Delphi

  Alt 12. Jun 2008, 11:51
Ich möchte gerne eine Übersetzungstabelle aus der Datenbank in diese Hashtable einlesen, wobei die analog ein Key und ein Value Feld hat. Das Value Feld ist ein varchar. Wie würde nun ein solches einlesen aus der DB in deine Hashtable exemplarisch aussehen, kannst du mir hier ein Beispiel geben (ich hab hier Probleme mit dem data-pointer parameter)?
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#7

Re: Hashtable in Delphi

  Alt 12. Jun 2008, 11:57
Ach würde mir eine Klasse implementieren, die einen String hält (und vielleicht noch mehr Informationen)
Delphi-Quellcode:
Type
  TMyData = Class
  Public
    Property StringValue : String;
    Property AnotherValue : Double;
  End;

...
procedure AddDataRecordToHashMap (aSD : TStringDictionary; aDataSet : TDataset);
Var
  d : TMyData;
  sKey : String;


Begin
  d := TMyData.Create;
  d.StringValue := aDataset['SomeStringValueFieldName'];
  d.AnotherValue := aDataset['AFloatFieldName'];

  sKey := aDataset['KeyFieldName'];
  aSD.Add(sKey, d);
End;
Du musst den Speicher aber selbst aufräumen. Also entweder packst Du alle TMyData in eine eigene TObjectList und gibst diese TObjectList frei (OwnsObject = True), oder Du iterierst durch die Hashmap und gibst alle 'Data'-Instanzen selbst frei.
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:15 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz