Einzelnen Beitrag anzeigen

Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.106 Beiträge
 
Delphi 11 Alexandria
 
#12

Re: 10 Richedit in eine Datei speichern und wieder auslesen

  Alt 24. Dez 2004, 14:33
Moin Ferby,

das könnte so aussehen, wenn Du nur den Text haben willst:

Delphi-Quellcode:
// schreiben
var
  iLen : integer;
  fs : TFileStream;

begin
  fs := TFileStream.Create(....);
  try
    iLen := length(RichEdit1.Lines.Text);
    fsWrite(iLen,4);
    fs.Write(RichEdit1.Lines.Text[1],iLen);
  finally
    FreeAndNil(fs);
  end;
end;

// lesen
var
  iLen : integer;
  fs : TFileStream;
  sBuf : string;

begin
  fs := TFileStream.Create(...,fmOpenRead);
  try
    fs.Read(iLen,4);
    SetLength(sBuf,iLen);
    fs.Read(sBuf[1],iLen);
    RichEdit1.Lines.Text := sBuf;
  finally
    FreeAndNil(fs);
  end;
end;
Nachdem Du den Wert ausgelesen/geschrieben hast, steht der FileStream auf der Länge des nächsten Eintrages.
Du kannst also das, was zwischen try/finally steht der Reihe nach für alle RichEdits ausführen.
Sollen auch die Formatierungen gespeichert werden wird's etwas komplizierter:

Delphi-Quellcode:
// schreiben
var
  iLen : integer;
  fs : TFileStream;
  ms : TMemoryStream;

begin
  ms := TMemoryStream.Create;
  fs := TFileStream.Create(....,fmCreate);
  try
    ms.Clear;
    RichEdit1.Lines.SaveToStream(ms);
    iLen := ms.Position;
    fs.Write(iLen,4);
    fs.CopyFrom(ms,0);
  finally
    FreeAndNil(fs);
    FreeAndNil(ms);
  end;
end;

// lesen
var
  iLen : integer;
  fs : TFileStream;
  ms : TMemoryStream;

begin
  ms := TMemoryStream.Create;
  fs := TFileStream.Create('c:\temp\riform.txt',fmOpenRead);
  try
    fs.Read(iLen,4);
    ms.Clear;
    ms.CopyFrom(fs,iLen);
    ms.Position := 0;
    RichEdit1.Lines.LoadFromStream(ms);
  finally
    FreeAndNil(fs);
    FreeAndNil(ms);
  end;
end;
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat