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); {
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
viel Glück
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
> 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.
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,
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]