Entwickler-Ecke

Dateizugriff - Rekordliste erstellen


sveno - Fr 05.03.04 00:38
Titel: Rekordliste erstellen
Hallo!

Wir haben vor ca. 1 Monat im Informatikunterricht mit Delphi angefangen!
Nun sollen wir das Spiel Mastermind prorammieren!Ich würde gerne wissen wie man eine Rekordliste einbauen kann die nicht bei jedem Neustart des Programms zurückgesetzt wird. Ich nehme an das dies nur mit einer Datei ausserhalb des Programms möglich ist auf die dann die Liste gespeichert wird und auch zugegriffen wird. Falsch ich das falsche Forum gewählt haben sollte sorry!
Neben bei würd ich gern wissen wie man es erreicht das bei bestimmten Aktionen (z.B. click auf button) eine mp3 erklingt.
Bin delphi anfänger und würde für laienhafte antworten dankkbar sein! :wink:

Danke im Vorraus, Sven!


catweasel - Fr 05.03.04 01:03

Im Prinzip richtiges Forum :-)

Du hast da richtig die Qual der Wahl... Je nachdem wie umfangreich deine Rekordliste sein soll...
Nur name und punkte, oder auch Datum, statistiken etc....

Entweder du speicherst es in ein Textfile (sequnziell über eine Stringlist zum Beispiel), oder du benutzt ein Record Typ und arbeitest mit typisierten Dateien, oder du erstellst auf Basis der TInifile eine Klasse die das kapselt....
Du könntest es aber auch als XML speichern.. Soo viele Möglichkeiten....

Catweasel


sveno - Fr 05.03.04 15:24

Also, die Rekordliste soll nur Namen, Punkte und Datum enthalten! Ich weiss aber weder was ein Record Typ ist, noch weiss ich was typisierte Dateien oder xml oder TInifile heisst :roll: Was würdet ihr mir denn davon empfehlen und wie bau ich das dann ins Programm ein?


sibbe - Mo 08.03.04 16:44

ich würd das ganze vielleicht über ne listbox machen...

speichern:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
const Rekord = 'C:\Rekord.txt';

procedure Tform1.Speichern(Name: string; Punkte: integer);
var F: TextFile;
begin
AssignFile(F,Rekord);
try
 Reset(F);
except
 on EInOutError do Rewrite(f);
end;
Append(f);
Writeln(f,inttostr(Punkte)+'       '+Name+'       '+Datetostr(date));
flush(f);
closefile(f);
end;


die initialisierung dann beim oncreate:


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
procedure TForm1.FormCreate(Sender: TObject);
var F: Textfile;
    s: string;
begin
AssignFile(F,Rekord);
try
 Reset(F);
except
 on EInOutError do exit;
end;
while not eof(f) do begin
 readln(f,s);
 listbox1.Items.Add(s);
end;
closefile(f);
listbox1.Sorted:=true;
end;


das einfache bei listbox ist die sortierung, allerdings wären dann die höchsten punkte an letzter stelle, wegen der alphabetischen sortierung
und deswegen n sortier-algorithmus zu schreiben halte ich für zu kompliziert, oder?

sibbe