// Es werden Strings immer an den Anfang einer Textdatei gespeichert, also
// Last In - First Out. Zusätzlich kann festgelegt werden, ob der String
// einfach nur eingefügt wird (wie bei write):
ZeilenSchaltung=False, oder als
// Zeile interpretiert wird (wie bei writeln):
ZeilenSchaltung=True.

// Getestet mit D4 unter Win98

procedure VornSpeichern(TextDatei, S: string; ZeilenSchaltung: boolean); 
var 
  fs: TFilestream; 
  ss: TStringstream; 
  ms: TMemoryStream; 
begin 
  if Zeilenschaltung then begin 
    if copy(s, length(s) - 1, 2) <> #13#10 then 
      s := s + #13#10; 
  end else begin 
    if copy(s, length(s) - 1, 2) = #13#10 then 
      delete(s, length(s) - 1, 2); 
  end; 
  ms := TMemorystream.create(); 
  fs := Tfilestream.create(TextDatei, fmOpenRead or fmShareDenyread); 
  ss := TStringStream.create(s); 
  ms.size := fs.size + ss.size; 
  ms.seek(0, sofrombeginning); 
  ms.copyfrom(ss, ss.size); 
  ms.seek(ss.size, sofrombeginning); 
  ms.copyfrom(fs, fs.size); 
  fs.free; 
  ss.free; 
  ms.savetofile(TextDatei); 
  ms.free; 
end; 
 
procedure TForm1.Button5Click(Sender: TObject); 
var txt, dateiname: string; 
begin 
  txt := 'Neuer Eintrag'; // oder Memo1.Text o.ä. 
  dateiname := 'c:\test.txt'; 
  VornSpeichern(dateiname, txt, true); 
end; 



Zugriffe seit 6.9.2001 auf Delphi-Ecke