Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Textdatei erstellen mit Firemonkey (https://www.delphipraxis.net/205810-textdatei-erstellen-mit-firemonkey.html)

Matho 19. Okt 2020 20:50

Textdatei erstellen mit Firemonkey
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,

Ich hätte ein Problem. Ich hoffe mir kann jemand weiterhelfen.
Ich möchte die Eingabe eines Editors in einer Textdatei speichern (wobei beim ausführen eine Textdatei erstellt werden soll, wenn diese nicht vorhanden ist), jedoch bekomme ich immer die Fehlermeldung "Datei nicht gefunden". Ich denke es liegt an einer fehlenden Schreibberechtigung, leider weiß ich auch nicht wo ich die Textdatei sonst speichern kann. Den Code habe ich im Anhang hinterlegt.
Vielen Dank im Voraus. Anhang 53170

himitsu 19. Okt 2020 21:19

AW: Textdatei erstellen mit Firemonkey
 
Hart-codierte sind immer eine extrem schlechte Idee.

Darum gibt es auch einige Funktionen, welche einem einen bestimmten Systempfad nennen.
Delphi-Referenz durchsuchenIOUtils.TPath.GetDocumentsPath oder Dergleichen


Eine fehlende Fehlerbehandlung (Ressourcenschutzblock aka Try-Except/Finally) ist auch keine gute Idee.


Die "alten" Dateifunktionen könnte man nehmen, aber muß man nicht.
TStringList
Delphi-Referenz durchsuchenIOUtils.TFile.WriteAllText bzw. WriteAllLines
TFileStream
TStringStream
...

TurboMagic 19. Okt 2020 21:37

AW: Textdatei erstellen mit Firemonkey
 
Hallo,

nimm nicht rewrite und assignfile, die sind sehr altbacken.
Codieren auch keine Pfade auf diese Art. Nimm TPath.GetXXXXX Methoden (siehe auch die Hilfe dazu)
und TPath.Combine aus System.IOutils.

Beispiel für Himitsus TStringList Empfehlung:
Delphi-Quellcode:

var
  sl: TStringList;
begin
  sl := TStringList.Create;
  try
    sl.Add(Edit1.Text);
    sl.SaveToFile(FileName); // hier mit TPath arbeiten...
  finally
    sl.Free;
  end;
end;

Grüße
TurboMagic


Alle Zeitangaben in WEZ +2. Es ist jetzt 21:45 Uhr.

Powered by vBulletin® Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf