Um nochmal auf die Hauptroutine von Horst zurückzukommen (warum seine dictionary.pas bei mir knallt ist momentan nicht so wichtig. Die orginale funzt ja tadellos.)
Delphi-Quellcode:
j := low(A64);
For i := low(A64) to High(A64) do
begin
Wert := random(RANDOMRANGE);
IF TestHash.Add(Wert,Pointer(j)) then
begin
A64[j] := Wert;
inc(j);
end;
end;
setlength(A64,j);
//wieder auslesen aus der Hashtable:
TestHash.find(A64[i],dummy)
writeln (integer(dummy));
Das mit der Hashtable und dem Key ist klar und läuft auch.
Aber was kann ich denn als Data abspeichern und somit als Pointer übergeben? Nur Integer? Und was wird dann abgespeichert, ein Adresspointer auf die übergebene Variable oder deren Wert? Also darf ich diese Variable danach verändern?
Ist das Auslesen generell so vorgesehen wie in den unteren beiden Zeilen? Bei einem ersten Test hat's funktioniert.
Stefan
Jedoch kann die referenzbasierte Implementierung des Standard-Objektmodells in Kombination mit den komplexen syntaktischen Dereferenzierungsregeln bei einer objektorientierten
API wie ein Stolperstein wirken.