Das ist kein Profi bin und etwas überfordert bin, sollte auch klar sein. Array in Verbindung mit Pointer, scheint mir doch etwas zu kompliziert für mich.
@jaenicke Könntest du mir nur ein sehr einfaches Beispiel zeigen. Nur um zu sehen, ob ich es angreifen mag.
Das ist von der Verwendung her kaum anders als du es aktuell vermutlich machst. Auch die Sortierung wäre mit Pointern sehr viel schneller.
Delphi-Quellcode:
type
TAuto = record
Marke: string;
Farbe: string;
Baujahr: string;
KM: string;
Notiz: string;
end;
PAuto = ^TAuto;
var
MyBaseArray: TArray<TAuto>;
MySortArray: TArray<PAuto>;
SetLength(MySortArray, Length(MyBaseArray));
// extrahieren der Pointer als Array
SetLength(MySortArray, Length(MyBaseArray));
for i := Low(MyBaseArray) to High(MyBaseArray) do
MySortArray[i] := @MyBaseArray[i];
// Zugriff
MySortArray[i].Baujahr := '1'; // compiler magic / pointer magic, keine Dereferenzierung notwendig
MySortArray[i]^.Baujahr := '1';
Schau dir Spring4D mal an, danach weißt du nicht mehr, wie du jemals ohne konntest.
Ja, damit kann man sehr viel machen, aber bei größeren Datenmengen muss man auch auf die Performance achten. Spring4D ist da zwar sehr gut, aber es hat natürlich trotzdem einen gewissen Overhead. Da muss man dann schauen, was im konkreten Anwendungsfall wichtiger ist: Der Komfort der Spring4D Bibliothek oder die Performance.