Hallo,
ich stehe mal wieder vor einem kleinen Problemchen:
Ich möchte ein Array schnellstmöglich durchsuchen. Dafür bietet sich ja das iterative parsen per Zeiger an.
Mit PChars, PIntegers und PStrings etc. hat das auch problemlos funktioniert.
Nur will es mir bei record-Arrays nicht gelingen.
Mein Code sieht wie folgt aus:
Delphi-Quellcode:
type
PData = ^TData;
TData = record
Value: Byte;
Reference: Pointer;
end;
var
Data: array of TData;
Current: PData;
begin
Data := //...
Current:= PData(Data);
while Current^.Reference <> nil do
begin
//...
Inc(Current);
end;
end;
So funktioniert das schonmal nicht. Nachdem ich das
Current := PData(Data) durch ein
Current := @Data[Low(Data)] ersetzt habe, schien es zu gehen. Allerdings auch nur bis zu dem
Inc(Current), dann kamen wieder vollkommen falsche Referenzen zustande.
Auch ein
Inc(Current,SizeOf(TData)) konnte das Problem nicht beheben.
Kann mir einer bitte sagen, was ich falsch mache?
Danke!