Klaus Fischer
2004-08-06 06:05:53 UTC
Hi,
Ich habe folgende (funktionierende) procedure die es mir ermöglicht,
einzelne Textpassagen in einer Textdatei zu ersetzen:
procedure FileReplaceString(const FileName, searchstring,
replacestring: string);
var
fs: TFileStream;
S: string;
begin
fs := TFileStream.Create(FileName, fmOpenread or fmShareDenyNone);
try
SetLength(S, fs.Size);
fs.ReadBuffer(S[1], fs.Size);
finally
fs.Free;
end;
S := StringReplace(S, SearchString, replaceString, [rfReplaceAll, rfIgnoreCase]);
fs := TFileStream.Create(FileName, fmCreate);
try
fs.WriteBuffer(S[1], Length(S));
finally
fs.Free;
end;
end;
Diese funktioniert sehr gut, wenn ich einzelne Textpassagen ersetzen
will deren Inhalt ich als Suchbegriff kenne. Ich suche nun aber eine
Möglichkeit, ganze Zeilen in einer Textdatei zu ersetzen (bei deren
ich nicht den gesamten Such-Text kenne). Wie muß man o. g. Procedure
ändern, damit dies ermöglicht wird?
Ich habe bei TFileStream keine Methode entdeckt, wie ich an die
Zeilen-Nr. komme..?
So long,
Klaus
Ich habe folgende (funktionierende) procedure die es mir ermöglicht,
einzelne Textpassagen in einer Textdatei zu ersetzen:
procedure FileReplaceString(const FileName, searchstring,
replacestring: string);
var
fs: TFileStream;
S: string;
begin
fs := TFileStream.Create(FileName, fmOpenread or fmShareDenyNone);
try
SetLength(S, fs.Size);
fs.ReadBuffer(S[1], fs.Size);
finally
fs.Free;
end;
S := StringReplace(S, SearchString, replaceString, [rfReplaceAll, rfIgnoreCase]);
fs := TFileStream.Create(FileName, fmCreate);
try
fs.WriteBuffer(S[1], Length(S));
finally
fs.Free;
end;
end;
Diese funktioniert sehr gut, wenn ich einzelne Textpassagen ersetzen
will deren Inhalt ich als Suchbegriff kenne. Ich suche nun aber eine
Möglichkeit, ganze Zeilen in einer Textdatei zu ersetzen (bei deren
ich nicht den gesamten Such-Text kenne). Wie muß man o. g. Procedure
ändern, damit dies ermöglicht wird?
Ich habe bei TFileStream keine Methode entdeckt, wie ich an die
Zeilen-Nr. komme..?
So long,
Klaus
--
Computer sind nicht intelligent. Sie denken nur, dass sie es sind.
Computer sind nicht intelligent. Sie denken nur, dass sie es sind.