Dateien lesen/schreiben

Hallo,

ich versuche schon seit zwei Tagen herauszubekommen, wie ich Dateien auslesen und beschreiben kann.
Ich habe schon verschiedene Sachen ausprobiert, allerdings wollte nichts wirklich funktionieren.

Ich habe es z.B. mit folgendem probiert:

procedure TForm1.Button5Click(Sender: TObject);
var F: TextFile;
begin

if SaveDialog1.Execute then
begin
if not FileExists(SaveDialog1.FileName) then
begin
FileCreate(SaveDialog1.FileName);
end;
AssignFile(F, SaveDialog1.FileName);
Reset(F); {

probier mal folgendes :

procedure TForm1.Button5Click(Sender: TObject);
var F: TextFile;
text:string;
begin
if SaveDialog1.Execute then
begin
AssignFile(F, SaveDialog1.FileName);
if not FileExists(SaveDialog1.FileName) then
rewrite(f) else reset(f);
readln(f,text); // lesen
writeln(F, Edit1.Text); // schreiben
CloseFile(F);
end;
end;

ich denke das muesste tun 
 ungetestet :smile:

viel GlĂŒck

[Bei dieser Antwort wurde das Vollzitat nachtrÀglich automatisiert entfernt]

Hi Thorsten,

> if SaveDialog1.Execute then  
> begin  
> if not FileExists(SaveDialog1.FileName) then  
> begin  
> FileCreate(SaveDialog1.FileName);  
> end;  
> AssignFile(F, SaveDialog1.FileName);  
> Reset(F); {


nicht "Reset(F)" verursacht den Fehler, sondern die nachfolgende Zeile "writeln(F, ...)". Mit "Reset" öffnest Du die Datei zum **Lesen** , aber dann versuchst Du mit "WriteLn" etwas hinein zu schreiben. 

Du mußt Dich entscheiden, ob Du etwas in die Datei schreiben oder etwas aus ihr lesen willst (beides gleichzeitig geht nun mal nicht). Im ersteren Fall öffnest Du die Datei mit "ReWrite" oder "Append" und schreibst dann mit beliebig vielen "WriteLn(F, ...)"-Befehlen hinein. 

Im zweiten Fall öffnest Du sie mit "Reset" und liest mit der notwendigen Anzahl (hier ist die Funktion "EOF" nĂŒtzlich; lies bitte selbst in der Online-Hilfe nach, was sie tut) von "ReadLn(F, ...)"-Befehlen ihren Inhalt aus.

MfG
Martin

Danke, es funktioniert wunderbar.
FĂŒr das Auslesen von Dateien habe ich ja schon was in der Delphi Hilfe gefunden. Aber fĂŒr’s Schreiben leider gar nix.

GrĂŒĂŸe

Thorsten

Wie funktionierts?

Danke, es funktioniert wunderbar.

Hi Thorsten,

ich hab jetzt genau das gleiche Problem - kannst Du mir bitte kurz Deinen verÀnderten Codeabschnitt zeigen, damit ich weiss, was ich Àndern muss?
Vielen Dank,

Michl

Klaro :smile:

procedure TForm1.Button5Click(Sender: TObject);
var F: TextFile;
var A, I: Integer;
begin
if SaveDialog1.Execute then
begin
if FileExists(SaveDialog1.FileName) then
begin
A := MessageBox(0, ‚Eine Datei mit diesem Namen existiert bereits. Soll diese ĂŒberschrieben werden?‘, ‚Datei existiert bereits‘, MB_YESNO);
end;
if A = 6 then
begin
AssignFile(F, SaveDialog1.FileName);
rewrite(F);
writeln(F, 'HG = ’ + Edit1.Text);
CloseFile(F);
end
else
begin
Button5Click(Sender);
end
end
end;

[Bei dieser Antwort wurde das Vollzitat nachtrÀglich automatisiert entfernt]

1 Like

Danke!!!

)