Einzelnen Beitrag anzeigen

shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#6

Re: im FileStream bestimmte Zeichen ersetzen

  Alt 3. Jun 2009, 15:05
Mit den beiden folgende Funktionen kannst du die komplette Datei als String einlesen, verändern und wieder speichern (am Besten unter einem anderen Dateinamen).
Wenn deine Datei ~ 10 Megabytes überschreitet musst du dir Gedanken machen, nur Teile der Datei einzulesen und zu manipulieren.
So aber ist es am Einfachsten: alles in den Speicher lesen, verändern, zurückschreiben.

Delphi-Quellcode:
// kopiert aus der JCL
function FileToString(const FileName: string): AnsiString;
var
  fs: TFileStream;
  Len: Integer;
begin
  fs := TFileStream.Create(FileName, fmOpenRead or fmShareDenyWrite);
  try
    Len := fs.Size;
    SetLength(Result, Len);
    if Len > 0 then
      fs.ReadBuffer(Result[1], Len);
  finally
    fs.Free;
  end;
end;

procedure StringToFile(const FileName: string; const Contents: AnsiString);
var
  fs: TFileStream;
  Len: Integer;
begin
  fs := TFileStream.Create(FileName, fmCreate);
  try
    Len := Length(Contents);
    if Len > 0 then
      fs.WriteBuffer(Contents[1], Len);
  finally
    fs.Free;
  end;
end;
Andreas
  Mit Zitat antworten Zitat