Achs
Zitat von
alzaimar:
Zitat von
Diamondback2007:
So, ich hätte jetzt folgenden Code:
...
Sollte das so klappen?
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:
Delphi-Quellcode:
Type
PInteger = ^Integer;
Var
Data : PInteger;
sID : String;
for i := 0 to sl.Count - 1 do Begin
tmpPZN := StrToInt32_JOH_IA32_7_a(ExtractPZN(sl.Strings[i]));
sID := ExtractID(sl.Strings[i]);
if not StringDic.Find(sID, Pointer (Data)) then begin
New (Data);
Data^ := tmpPZN;
StringDic.Add(sID, Data);
end
else
Inc(Data^, tmpPTN);
end;
Achtung! Hinterher aber die Data wieder mit Dispose freigeben! Dazu wanderst Du per 'First/Next durch die Hashmap und gibst einzeln die gelieferten Data wieder frei.
Delphi-Quellcode:
StringDic.First;
While StringDic.Next (sID, PInteger (Data)) Do
Dispose (Data);
Große Arrays erzeugt man übrigens dynamisch.
Delphi-Quellcode:
Var
BigArray : Array Of Integer;
Begin
SetLength(BigArray, 10000000);
Okay vielen Dank erst einmal
Dann werde ich mich mal damit beschäftigen
Wenn man das Array dynamisch erzeugt klappts dann auch größer oder was?
Fabian E.