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 Text in Datei speichern (https://www.delphipraxis.net/158119-text-datei-speichern.html)

delphinia 6. Feb 2011 20:31

Delphi-Version: 5

Text in Datei speichern
 
Hallo ihr Lieben


ich möchte beliebig langen Text in einer TXT Files speichern die nicht vorhanden ist....

Delphi-Quellcode:
{$I-}
  AssignFile(f, 'C:\test.txt');
  Append(f);
  Writeln(f, report);
  Flush(f);
  CloseFile(f);
{$I+}
so wollte ich tun doch das gibt immer Feheleermeldung und es wird keine files geschrieben.

Gibt es eine bessere Lösung oder wo ist mein fehler was muss ich tun?

Sir Rufo 6. Feb 2011 20:34

AW: Text in Datei speichern
 
Ein Blick in die Hilfe verrät dir warum Delphi-Referenz durchsuchenAppend

rollstuhlfahrer 6. Feb 2011 20:35

AW: Text in Datei speichern
 
Du kannst keine Datei mit Append89 erstellen. Prüfe zuerst mittels Delphi-Referenz durchsuchenFileExists(), ob diese Datei existiert und dann verwende Delphi-Referenz durchsuchenRewrite() zum erstmaligen erstellen der Datei.

Ansonsten wäre es toll gewesen, wenn du zusätzlich zu dem Problem auch den Fehlermeldungstext mitgeliefert hättest. Die meisten Anfragen hier haben mit irgendwelchen Problemen und Geht-Nichts zu tun. Die Fehlermeldung ist nämlich in den meisten Fällen sogar aussagekräftig, ala "Datei existiert nicht".

Bernhard

Edit: Da war einer schneller.

Edit2: Ich hoffe doch sehr, dass das "C:\test.txt" auch wirklich nur ausschließlich zu Testzwecken oder um den wirklichen Pfad zu verheimlichen verwendet wird. Unter Win >= Vista bekommst du nämlich dann kräftig Probleme mit der hoffentlich aktivierten UAC

Luckie 6. Feb 2011 20:35

AW: Text in Datei speichern
 
Zitat:

Zitat von delphinia (Beitrag 1079914)
so wollte ich tun doch das gibt immer Feheleermeldung

Für Hellsehen bist du ihr im falschem Forum.

Warum keine StringList oder Streams oder Ini-Dateien?

delphinia 6. Feb 2011 20:46

AW: Text in Datei speichern
 
danke soweit...

INI geht nicht das es sich um HTML code handelt :)

Stream komme ich nicht mit klar...
Suchte was einfaches wie in PHP auch um den fertigen grossen Text zu speichern...

omata 6. Feb 2011 20:46

AW: Text in Datei speichern
 
Delphi-Quellcode:
AssignFile(f, 'C:\test.txt');
try
  if FileExists('C:\test.txt') then
    Append(f)
  else
    Rewrite(f);
  Writeln(f, report);
finally
  CloseFile(f);
end;

Sir Rufo 6. Feb 2011 20:53

AW: Text in Datei speichern
 
Zitat:

Zitat von omata (Beitrag 1079921)
Delphi-Quellcode:
AssignFile(f, 'C:\test.txt');
try
  if FileExists('C:\test.txt') then
    Append(f)
  else
    Rewrite(f);
  Writeln(f, report);
finally
  CloseFile(f);
end;

Das try ist zu früh
Delphi-Quellcode:
AssignFile(f, 'C:\test.txt');
// try <-- hier zu früh
  if FileExists('C:\test.txt') then
    Append(f)
  else
    Rewrite(f);
try // <-- da muss es hin
  Writeln(f, report);
finally
  CloseFile(f);
end;

delphinia 6. Feb 2011 20:55

AW: Text in Datei speichern
 
Zitat:

Zitat von Sir Rufo (Beitrag 1079925)
Zitat:

Zitat von omata (Beitrag 1079921)
Delphi-Quellcode:
AssignFile(f, 'C:\test.txt');
try
  if FileExists('C:\test.txt') then
    Append(f)
  else
    Rewrite(f);
  Writeln(f, report);
finally
  CloseFile(f);
end;

Das try ist zu früh
Delphi-Quellcode:
AssignFile(f, 'C:\test.txt');
// try <-- hier zu früh
  if FileExists('C:\test.txt') then
    Append(f)
  else
    Rewrite(f);
try // <-- da muss es hin
  Writeln(f, report);
finally
  CloseFile(f);
end;

was ist daran schlimm wenn es zu "früh" ist?
arbeite seit neustem viel damit und daher kommt mir das gerade gelegen zu fragen...

Sir Rufo 6. Feb 2011 21:00

AW: Text in Datei speichern
 
CloseFile würde immer ausgeführt werden.
Wird aber vorher kein Append oder Reset oder Rewrite ausgeführt, dann rummst es.

Das ist genau so wie man das nicht macht:
Delphi-Quellcode:
try
  Foo := TFoo.Create;
  ...
finally
  Foo.Free;
end;
so ist es richtig
Delphi-Quellcode:
Foo := TFoo.Create;
try
  ...
finally
  Foo.Free;
end;
Stell dir jetzt vor was passiert, wenn bei der Erzeugung von Foo eine Exception auftritt.
Im ersten Beispiel bekommst du noch eine Exception hintendran, weil Foo.Free ausgeführt wird

delphinia 6. Feb 2011 21:02

AW: Text in Datei speichern
 
Vielen Dank!
Wieder etwas gelernt :) :oops:


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:48 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