Einzelnen Beitrag anzeigen

Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.362 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: Array of records zellegen

  Alt 22. Mär 2023, 10:26
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.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat