Un ejemplo usando TStrings sería este:
Código Delphi
[-]
procedure Modificar2(FileName:String; StrOrig, StrNueva:string);
var
TS:TStrings;
i:Integer;
encontrada:Boolean;
begin
TS := TStringList.Create();
i := 0;
encontrada := False;
try
TS.LoadFromFile(FileName);
while (i <= TS.Count - 1) do begin
if AnsiContainsStr(StrOrig, TS.Strings[i]) then begin
TS.Strings[i] := StrNueva;
encontrada := True;
i := TS.Count;
end;
i := i + 1;
end;
if (encontrada) then begin
TS.SaveToFile(FileName);
end;
finally
FreeAndNil(TS);
end;
end;
Si le pasas el nombre del fichero, la cadena a buscar y la nueva, te sustituirá 1 o varias ocurrencias de esa cadena. Para ficheros muy grandes no creo que sea la forma más optima, pero para ficheros normales no creo que se note la deferencia.