Einzelnen Beitrag anzeigen

Bernd Nowak

Registriert seit: 18. Jan 2006
Ort: Duisburg
61 Beiträge
 
Turbo Delphi für Win32
 
#9

Re: Multidimensionales Array oder Packed Record ?

  Alt 23. Okt 2006, 20:28
Nicht schlecht (sagt ein schlechter Programmierer )

Also was habe ich vor:

Für eine Simulation (GrandPrix Legends) ein Tool schreiben, das durch alle gespeicherten replays geht, den Header ausliest indem die Zeiten gespeichert sind und diese in einem Objekt/Liste speichern.

Die Daten liegen ungefähr in dieser Form vor:

Datum
Fahrername
Saison (65/67/69/TC)
Kurs
Liste von Rundenzeiten

Nun muss die beste Zeit gefunden werden und diese nach folgendem sortiert werden:
Fahrer Name => Saison => Kurs => beste Zeit (kleinster Wert da in 1/1000 Sekunden gespeichert).

Habe jetzt auch schon mit Tlist überprüft und denke das ich den ersten Wert speichere und den nächsten Zeitwert vergleiche. Ist er besser ersten Wert löschen und mit neuem besserem Ersetzen.

Habe jetzt mal einfach mit TList probiert stecke jetzt aber mit TList.Sort fest

Delphi-Quellcode:
type
  PMyList = ^RLaps;
  RLaps = record
    Track: String;
    Name: String;
    Time: Currency;
    end;
var

  MyList: TList;
  ARecord: PMyList;
  B: Integer;

begin
  MyList := Tlist.create;
  try
    New (ARecord);
    ARecord^.Track :='Silverstone';
    ARecord^.Name := 'Nowak';
    ARecord^.Time := 86.12;
    MyList.Add(ARecord);
    New (ARecord);
    ARecord^.Track :='Silverstone';
    ARecord^.Name := 'Nowak';
    ARecord^.Time := 86.01;
    MyList.Add(ARecord);
    New (ARecord);
    ARecord^.Track :='Silverstone';
    ARecord^.Name := 'Nowak';
    ARecord^.Time := 86.12;
    MyList.Add(ARecord);
    for B := 0 to (MyList.Count - 1) do
    begin
      ARecord := MyList.Items[B];
      showmessage('Track: '+ARecord^.Track + 'Time: ' +CurrToStr(ARecord^.Time));
    end;
  Finally
    MyList.Free
  end;
end;
Aber bin offen für alle Ideen da ich bisher noch nicht groß mit Listen in Delphi gearbeitet habe.
  Mit Zitat antworten Zitat