Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi: Sofortiges Abspeichern von Text in Textdatei (https://www.delphipraxis.net/105232-delphi-sofortiges-abspeichern-von-text-textdatei.html)

Larsi 18. Dez 2007 14:19


Delphi: Sofortiges Abspeichern von Text in Textdatei
 
hi,
kann ich eigentlich bei Delphi direkt etwas in eine Textdatei schreiben, also zb 'Juhu'.SaveToFile oder so was.

MFG Lars Wiltfang

mkinzler 18. Dez 2007 14:25

Re: Delphi: Sofortiges Abspeichern von Text in Textdatei
 
Alle Komponenten, welche eine Stringliste verwenden.

vlees91 18. Dez 2007 14:25

Re: Delphi: Sofortiges Abspeichern von Text in Textdatei
 
nicht mit einer Zeile

Progman 18. Dez 2007 14:29

Re: Delphi: Sofortiges Abspeichern von Text in Textdatei
 
Delphi-Quellcode:
myText:=TStringList.Create;
myText.Add('juhu');
myText.SaveToFile('blah.txt');
;)

Larsi 18. Dez 2007 14:31

Re: Delphi: Sofortiges Abspeichern von Text in Textdatei
 
ich möchte aber später im programm, dass noch ein eintrag hinzufegügt werden soll und der alte nicht gelöscht werden soll, wie geht das :)

inherited 18. Dez 2007 14:33

Re: Delphi: Sofortiges Abspeichern von Text in Textdatei
 
Du hast mehrere möglichkeiten
1. Über eine StringList
Delphi-Quellcode:
var sl: TSTringList;
begin
  sl:=TStringList.Create();
  try
    sl.Add(MyString);
    sl.SaveToFile(ExtractFilePath(ParamStr(0))+'hallo.txt');
  finally
    sl.Free;
  end;
end;
2. Über die einfachen File-Funktionen
Delphi-Quellcode:
var f: TextFile;
begin
  AssignFile(f, 'c:\pfad\zur\datei.txt');
  ReSet(f);
  WriteLn(f, MyString);
  CloseFile(f);
end;
3. Über einen File-Stream
Delphi-Quellcode:
var fs: TFileStream;
begin
  fs:=TFileStream.Create('Pfad', fmOpenWrite);
  try
    fs.Seek(0, soFromBeginning); //Bin mir nicht ganz sicher ob OpenWrite auf anfang der Datei springt oder nicht, deshalb zur Sicherheit...
    fs.Write(MyString[1], Length(MyString));
  finally
    fs.Free;
  end;
end;
Mein Delphi, stelle ich gerade fest, ist ein wenig eingerostet :oops:
Ist ungetestet, zur näheren Erläuterung benutze bitte die Suche oder frag.
€dit: Oha, also angefügt.
Dazu einfach vorher sl.LoadFromFile laden, der rest bleibt. Beim FileStream einfach soFromBeginning durch soFromEnd ersetzen und noch #13#10 als String für Zeilenumbruch speichern, bei der AssignFile-Methode einfach ReSet mit ReWrite ersetzen, glaube ich.

Progman 18. Dez 2007 14:37

Re: Delphi: Sofortiges Abspeichern von Text in Textdatei
 
Vor dem Hinzufügen einfach das alte erst mal wieder laden, falls die List wieder gelöscht/freigegeben wurde.

dominikkv 18. Dez 2007 14:37

Re: Delphi: Sofortiges Abspeichern von Text in Textdatei
 
Zitat:

Zitat von Larsi
ich möchte aber später im programm, dass noch ein eintrag hinzufegügt werden soll und der alte nicht gelöscht werden soll, wie geht das :)

du lädst zuerst von der datei, dann fügst du deinen text hinzu, und speicherst die wieder:
Delphi-Quellcode:
with TStringList.Create do
  try
    if FileExists('blah.txt') then
      LoadFromFile('blah.txt');
    Add('MainTexT');
    SaveToFile('blah.txt');
  finally
    free;
  end;

vlees91 18. Dez 2007 14:39

Re: Delphi: Sofortiges Abspeichern von Text in Textdatei
 
Mach eine Funktion, die bei uebergeben eines Wortes/Status/etc das ans Ende schreibt
Und in der Funktion wird die datei zuerst geladen mit einer TSttringList, die Statusmeldung angehaengt, gespeichert und wieder geschlossen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:07 Uhr.

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