PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Daten in Dateien speichern?


DoenerAli
10.01.2002, 11:45
Hiho!

Folgendes:
Wir sollen für die Schule in TP ein Autorennspiel programmieren, soweit alles kein Problem, jetzt dachte ich mir, eine Highscore-Tabelle anzulegen. In der Zeit, Name und eingesammelte Punkte gespeichert werden. Hat wer ne Idee, wie man soetwas unter Pascael realisieren kann?

Gruß
Ali


Felix Kaiser
10.01.2002, 15:04
type
THighScoreListe = array[1..10] of record
Name: String[23];
Punkte,Zeit: Longint;
end;

var
HighScoreListe: THighScoreListe;

procedure SpeichereHighScore;
var
f: file;
begin
Assign(f,´SCORE.DAT´);
Rewrite(f,1);
BlockWrite(f,HighScoreListe,SizeOf(HighScoreListe));
Close(f);
end;

procedure LadeHighScore;
var
f: file;
begin
Assign(f,´SCORE.DAT´);
Reset(f,1);
FillChar(HighScoreListe,SizeOf(HighScoreListe),0);
BlockRead(f,HighScoreListe,SizeOf(HighScoreListe));
Close(f);
end;


Klar ? ;)

Diogenes
11.01.2002, 14:11
Eine Kleinigkeit fehlt allerdings noch: Wie einen neuen Eintrage einfügen? Sehr bewährt ist:


var I, Ort: Byte;

...
{Weiters vorhanden: Ergebnisrecord Ergebnis}
Ort := 0;
for I := 10 downto 1 do
if Ergebnis.Punkte > HighScoreListe[ I]
then begin
Ort := I;
Break
end;
if Ort <> 0
then begin
if Ort < 10
then for I := Ort to 9 do
HighScoreListe[ Ort + 1] := HighScoreListe[ Ort];
HighScoreListe[ Ort] := Ergebnis
end;


Bei mir zu Hause bewährt sich OOP besonders. Wenn Du das verwenden willst, sieh im Turbo-Vision oder ObjectWindows Handbuch nach, wie sortierte Kollektionen funktionieren!

Außerdem: :] :] :] 1. Antwort als Moderator!

DoenerAli
20.01.2002, 17:34
jupp thx ihr beiden hat mir echt weitergeholfen!
hoffe ich kann mich mal revanchieren.