Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Laden/Speichern (https://www.delphipraxis.net/115837-laden-speichern.html)

Razor90 18. Jun 2008 18:10


Laden/Speichern
 
Hab jetzt noch ein anderes Problem... will meinen Array speichern/Laden.....das speichern klappt soweit, nur beim Laden gibts Probleme. Seht ihr nen Fehler?

Delphi-Quellcode:
procedure TForm1.Speichern1Click(Sender: TObject);
var a:integer;
     T:Textfile;
begin
 Assignfile(T,'C:\Text.dat');
 Rewrite(T);
 a:=0;
 writeln(T,aa);
 repeat
 a:=a+1;
 writeln(T,person[a].Name);
 writeln(T,person[a].Vorname);
 writeln(T,person[a].Geschlecht);
 writeln(T,person[a].Alter);
 writeln(T,person[a].Beruf);
 writeln(T,person[a].Hobby);
 writeln(T,person[a].Kartei);
 until a=aa;
 closefile(T);
 end;


procedure TForm1.Laden1Click(Sender: TObject);
var a:integer;
    T:Textfile;
begin
 assignfile(T,'C:\Text.dat');
  reset(T);
  readln(aa);
  a:=0;
  repeat
  a:=a+1;
  readln(T,person[a].Name);
  readln(T,person[a].Vorname);
  readln(T,person[a].Geschlecht);
  readln(T,person[a].Alter);
  readln(T,person[a].Beruf);
  readln(T,person[a].Hobby);
  readln(T,person[a].Kartei);
  until a=aa;
  closefile(T);
  if not fileexists('C:\Text.dat') then begin
  showmessage('Datei nich vorhanden');
  end;

    end;

Die Muhkuh 18. Jun 2008 18:13

Re: Laden/Speichern
 
Hi,

welches Problem gibt es denn?

Desweiteren solltest Du nicht erst die Datei laden und hinterher überprüfen, ob die Datei überhaupt existiert. Das sollte man davor machen.

Dann bitte Deinen Code in Delphi-Tags einklammern. Danke :)

DeddyH 18. Jun 2008 18:13

Re: Laden/Speichern
 
Wir wären Dir sehr verbunden, wenn Du die Delphi-Tags benutzen würdest. Trotzdem ist mir die Zeile
Zitat:

Delphi-Quellcode:
 readln(aa);

aufgefallen, da fehlt ja wohl noch der Input.

SirThornberry 18. Jun 2008 18:16

Re: Laden/Speichern
 
Hallo Razor90 :dp:
könntest du bitte deinen Beitrag mit Hilfe des "Edit"-Buttons über deinem Beitrag ändern und Delphi-Tags um deinen Quelltext herum setzen, so wie bereits von DerMuhkuh und DaddyH erwähnt? Danke :)

Delphi-Quellcode:
Dein Delphi Quelltext

rollstuhlfahrer 18. Jun 2008 19:54

Re: Laden/Speichern
 
Neben dem fehlenden Input in der angesprochenen Zeile würde ich noch eine weitere Überprüfung am Ende des REPEAT..UNTIL-Block setzen und zwar die Prüfung auf Dateiende. Das geht mit:
Delphi-Quellcode:
until (a=AA) OR (EOF(t))
Was mir auch auffällt, was nicht eindeutig beschrieben ist, ist das Array. Hasz du ein dynamisches oder ein statisches Array? Beim einem dynamischen solltest du die Größ mit SetLength() um 1 vergrößern, bevor du einen neuen Wert reinschreibst. Bei einem statischen Array kann es passieren, dass es nicht groß genug ist. Dies kannst du nicht durch SetLength() behoben werden. Hier empfehle ich den Umstieg auf ein dynamisches Array.

Bernhard

RavenIV 19. Jun 2008 08:45

Re: Laden/Speichern
 
Zitat:

Zitat von Razor90
Hab jetzt noch ein anderes Problem... will meinen Array speichern/Laden.....das speichern klappt soweit, nur beim Laden gibts Probleme. Seht ihr nen Fehler?

Du glaubst ja nicht ernsthaft, dass sich jemand mit diesem Quellcode auseinandersetzt?
Formatierung!
Einrückung!
Variablennemane!
Gross/Kleinschreibung!


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:10 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz