Forum: Object-Pascal / Delphi-Language
Delphi
by alzaimar,
22. Jul 2008
Var
tmpData : PInteger;
Begin
StringDic.First;
ListBox1.Items.BeginUpdate;
while StringDic.Next(sID, tmpData) do
ListBox1.Items.Add('ID: ' + sID + ' Summe: ' + IntToStr(tmpData^));
ListBox1.Items.EndUpdate;
End;
Forum: Object-Pascal / Delphi-Language
Delphi
by alzaimar,
22. Jul 2008
Nein. Du willst die Adresse der lokalen Variablen speichernm aber tmpPZN wird jedesmal verändert. Entweder Du veränderst die Hashmap, sodaß sie bei einem gefundenen Schlüssel die Data-Information gleich überarbeitet, oder Du erzeugst jedesmal Dir dynamisch einen Integer:
Mach es so:
Type
PInteger = ^Integer;
Var
Data : PInteger;
sID : String;
Forum: Object-Pascal / Delphi-Language
Delphi
by alzaimar,
21. Jul 2008
Ich hab das nicht genau analyisert, aber du hast eine Liste mit irgendwelchen Daten und willst die nun unifizieren, also alle doppelten Einträge raussschmeissen. Richtig?
Egal, denn du hast einen Aufwand von O(n^2), die Laufzeit wächst also quadratisch mit der Listenlänge. Das ist schlecht, denn es geht viel schneller:
Die erste Idee ist ja, die Liste zu sortieren, und dann einfach von vorne...