Entwickler-Ecke

Dateizugriff - Speichern und Lesen einer .txt datei


Bo0n - Do 16.02.12 21:14
Titel: Speichern und Lesen einer .txt datei
Moin!

ich versuche den Text einer Memo in eine txt Datei zu speichern um diese nachher aufrufen zu können


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:
procedure TForm2.Button1Click(Sender: TObject);
var sDir : string;
    f : TEXTfile;
begin
  sDir := 'c:\Stundenplan';
  if NOT DirectoryExists(sDir) then
    ForceDirectories(sDir);
  if not FileExists('c:\Stundenplan\'+Edit1.Text+'.txt')
    then
      begin
        assignfile(f, 'c:\Stundenplan\'+Edit1.Text+'.txt');
        rewrite(f);
        closefile(f);
      end
    else
      begin
         with TStringList.Create do
         try
          Memo1.Lines.SaveToFile ('c:\Stundenplan\'+Edit1.Text +'.txt');
         finally
          Free;
         end;
      end;
end;


was mache ich falsch?

Edit:vll sollte ich auch das Problem beschreiben..
Die Datei wird erstellt, der Ordner auch.. das Problem liegt im Speichern des Textes, denn die txt datei bleibt leer.

Habs raus! bitte schließen oder löschen :D


haentschman - Fr 17.02.12 20:14

Hallo...

Das StringlistCreate kommt mir sehr merkwürdig vor :zwinker:


Probiere erst mal... (ohne Fehlerbehandlung etc.)

Delphi-Quelltext
1:
2:
3:
4:
else
begin
  Memo1.Lines.SaveToFile ('c:\Stundenplan\'+Edit1.Text +'.txt');
end;


PS: ich glaube, den Part kann ma sich sparen.

Delphi-Quelltext
1:
2:
3:
4:
5:
begin
  assignfile(f, 'c:\Stundenplan\'+Edit1.Text+'.txt');
  rewrite(f);
  closefile(f);
end

...das macht SaveTo File intern selbst. Bzw. du brauchst die Datei nicht explizit vorher erstellen.

Wegen der Übersicht mal komplett...

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
procedure TForm2.Button1Click(Sender: TObject);
var sDir : string;
begin
  sDir := 'c:\Stundenplan';
  if not DirectoryExists(sDir) then
  begin
    if ForceDirectories(sDir) then
     try
       Memo1.Lines.SaveToFile ('c:\Stundenplan\'+Edit1.Text +'.txt');
     except // wenn nötig Exception auswerten
       MessageDlg('Der Stundenplan konnte nicht gespeichert werden',mtError,[mbOK],0); 
     end
  end;
end;


Versuche mal des Verständnisses wegen zu erklären was jetzt anders ist...