Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Datei laden (https://www.delphipraxis.net/122256-datei-laden.html)

delphidummy 12. Okt 2008 10:47


Datei laden
 
Guten Morgen,

wir haben Probleme beim Öffnen einer von uns gespeicherten Datei. Das Speichern funktioniert, die Werte werden ein einer Textdatei abgespeichert. Wir wissen jetzt aber auch nich genau, was wir bei readln in die Prozedur hineinschreiben sollen...Ist wahrscheinlich eine blöde Fragen,aber wir kommen einfach nicht weiter :(

Delphi-Quellcode:
//Speichern unter - Funktion einrichten
procedure TForm1.Speichernunter1Click(Sender: TObject);
begin if SaveDialog1.execute then
begin assignfile (Datei, SaveDialog1.FileName);
rewrite (Datei);
writeln(Datei,editpalettenlast.text);
writeln(Datei,editlagerhoehe.text);
writeln(Datei,editregallaenge.text);
writeln(Datei,editpalettenanzahl.text);
writeln(Datei,editzellenbreite.Text);
writeln(Datei,edittyp.Text);
writeln(Datei,editkosteni.Text);
writeln(Datei,editkostenu.Text);
writeln(Datei,editgesamtkosten.Text);
writeln(Datei,editkostenpropalette.Text);
CloseFile(Datei);
        end;
end;


procedure TForm1.ffnen2Click(Sender: TObject);
var Inhalt:string ;
begin
if opendialog1.execute then

begin
assignfile(Datei,opendialog1.filename);
reset(Datei);
readln(Datei,Inhalt);
CloseFile(Datei);
end;
end;
[edit=SirThornberry]Delphi-Tags gesetzt - nächstes mal bitte selbst machen - Mfg, SirThornberry[/edit]

mkinzler 12. Okt 2008 10:50

Re: Datei laden
 
Di Umkehrung: ReadLn lädt je eine Zeile

DeddyH 12. Okt 2008 10:51

Re: Datei laden
 
Ihr müsst solange lesen, bis EOF (=End of File) true ist.
Delphi-Quellcode:
while not EOF(datei) do
  begin
    readln(datei, stringvariable);
    ...
  end;
CloseFile(datei);

Klaus01 12. Okt 2008 10:52

Re: Datei laden
 
.. nun readln heißt readln weil es eine Zeile aus einer Textdatei liest (read line).
Wenn man also mehrere Zeilen lesen möchte sollte man readln des öfteren ausführen.

Grüße
Klaus

Cyf 12. Okt 2008 10:55

Re: Datei laden
 
(mal reformatiert)
Delphi-Quellcode:
//Speichern unter - Funktion einrichten
procedure TForm1.Speichernunter1Click(Sender: TObject);
begin
  if SaveDialog1.execute then
  begin
    assignfile (Datei, SaveDialog1.FileName);
    rewrite (Datei);
    writeln(Datei,editpalettenlast.text);
    writeln(Datei,editlagerhoehe.text);
    writeln(Datei,editregallaenge.text);
    writeln(Datei,editpalettenanzahl.text);
    writeln(Datei,editzellenbreite.Text);
    writeln(Datei,edittyp.Text);
    writeln(Datei,editkosteni.Text);
    writeln(Datei,editkostenu.Text);
    writeln(Datei,editgesamtkosten.Text);
    writeln(Datei,editkostenpropalette.Text);
    CloseFile(Datei);
  end;
end;


procedure TForm1.ffnen2Click(Sender: TObject);
var Inhalt:string ;
begin
  if opendialog1.execute then
  begin
    assignfile(Datei,opendialog1.filename);
    reset(Datei);
    //hier Überprüfung auf Eof einbauen
    readln(Datei,Inhalt);
    CloseFile(Datei);
  end;
end;
In Delphi existiert die Funktion
Delphi-Quellcode:
function Eof(var F: file): Boolean;
damit solltet ihr (wenn ihrs komplett einlesen wollt) in einer Schleife (while) jedes mal prüfen, ob das Dateiende erreicht ist, und ansonsten eine weitere Zeile in einen Buffer einlesen und den dann nach kompletten Einlesen anzeigen.
Hoffe das hat euch geholfen.

:dp:

delphiamateur 12. Okt 2008 11:22

Re: Datei laden
 
Also schreibt man bei readln jedes mal wieder diese Editfelder rein,aus denen beim Speichern ja auch gelesen wurde?
z.B readln (Datei,editpalettenlast.text)
usw.

mkinzler 12. Okt 2008 11:24

Re: Datei laden
 
Delphi-Quellcode:
editpalettenlast.text := readln (Datei);

DeddyH 12. Okt 2008 11:28

Re: Datei laden
 
Hm?
Delphi-Quellcode:
readln (Datei,editpalettenlast.text);

jaenicke 12. Okt 2008 11:44

Re: Datei laden
 
Ohne es getestet zu haben würde ich sagen, dass man eine Zwischenvariable braucht, da Text eine Eigenschaft und keine Variable ist.

// EDIT:
Genau:
Delphi-Quellcode:
  Readln(Datei, Inhalt);
  editpalettenlast.Text := Inhalt;
...

DeddyH 12. Okt 2008 11:52

Re: Datei laden
 
Ich würde sowieso eine Stringliste vorziehen, aber das scheint eine Hausaufgabe o.ä. zu sein. Wer weiß, ob da die "alte" Dateiverarbeitung gefordert wird.


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:53 Uhr.
Seite 1 von 2  1 2      

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