Entwickler-Ecke

Dateizugriff - geordnet speichern in eine typ. Datei


flipper0001 - So 12.06.05 14:50
Titel: geordnet speichern in eine typ. Datei
Hi!
Ich hab ein kleines Problem!
Ich hab einen Record Tspieler(spielerrang, spielername, spielerpunkte,spielerzeit) und möchte diese Daten nach dem Spielerrang geordnet in eine typisierte Datei schreiben, wobei die Datei mit Datensätzen schon vorhanden sein kann oder neuerstellt werden soll.
mfg


Moderiert von user profile iconChristian S.: Topic aus Sonstiges verschoben am So 12.06.2005 um 15:03


WeBsPaCe - So 12.06.05 14:56

Wo ist das Problem? Oder sollen wir das für dich schreiben? Das wird keiner machen. Wir können dir aber dabei helfen. ;)

Also versuch's mal und zeig dann den Code, wo du steckengeblieben bist. ;) Ist nicht so schwer.


Christian S. - So 12.06.05 15:02

Hallo!

Folgende Befehle sollten Dir helfen:
Suche in: Delphi-Forum, Delphi-Library ASSIGNFILE, Suche in: Delphi-Forum, Delphi-Library CLOSEFILE
Suche in: Delphi-Forum, Delphi-Library RESET, Suche in: Delphi-Forum, Delphi-Library REWRITE
Suche in: Delphi-Forum, Delphi-Library READ, Suche in: Delphi-Forum, Delphi-Library WRITE

Die Suche hier findet sehr viel, vielleicht besser mal in der Delphi-Hilfe danach schauen. :-)

Grüße
Christian


delfiphan - So 12.06.05 15:37


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
var 
 f: file of mytype; // mytype darf keine "dynamisch angelegten" variablen wie ansistrings, dynamische arrays und interfaces enthalten. 
 a: mytype;
begin
  assignfile(f, 'myfile.ext');
  rewrite(f);
  write(f, a);
  closefile(f);
end;


flipper0001 - So 12.06.05 16:07
Titel: Codeproblem
Ok!
Ich hab jetzt einen code verfasst. Es werden jedoch nicht alle Daten in die Datei geschrieben!

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
procedure TForm5.Button1Click(Sender: TObject);
var speicher:tspieler;
    i:byte;
begin
  savedialog1.filter:= 'Highscore (*.hsc)\*.hsc';
  savedialog1.defaultext:= 'hsc';
  spieler1.spielerzeit:=inttostr(min)+' : '+inttostr(sec);
  if savedialog1.Execute then
  begin
    assignfile(dateivar,savedialog1.filename);
    if fileexists(savedialog1.filename) then reset(dateivar)
    else rewrite(dateivar);
    if filesize(dateivar)<>0 then
    begin
      seek(dateivar,filesize(dateivar)-1);
      for i:= filesize(dateivar)-1 downto 0 do
      begin
        read(dateivar,speicher);
        if spieler1.spielerpunkte > speicher.spielerpunkte  then
        begin
         seek(dateivar,i);
         spieler1.spielerrang:=filesize(dateivar)-1-i;
         write(dateivar,spieler1);
        end
        else write(dateivar,spieler1);
      end;
    end
    else
    begin
      spieler1.spielerrang:=1;
      write(dateivar,spieler1);
    end;
    closefile(dateivar);
  end;
end;


Moderiert von user profile iconChristian S.: Code- durch Delphi-Tags ersetzt.