R.i.m.s.k.y.,
Спасибо!
Вторая процедура не работает, изобразил её в классическом виде - всё заработало. Привожу полный код секции, который при деинсталляции программы удаляет указанный текст из указанного файла, например, добавленную при инсталляции строку в hosts. Может ещё кому пригодится. (Первая процедура - Ваша, вторая - классическая).
Код:

[_code]
procedure RePlaceTextinFile(FilePath:string; find:string; replace:string);
var
S: TArrayOfString;
i : Integer;
begin
// if not FileExists(FilePath) then begin MsgBox)'Файл не найден' + FilePath, mbError, mb_Ok); Exit;end;
LoadStringsFromFile(FilePath, S);
for i:= 0 to GetArrayLength(S)-1 do begin
if (Pos(AnsiUpperCase(find), AnsiUpperCase(S[i])) > 0) then begin
StringChangeEx(S[i], find, replace, True);
end;
end;
SaveStringsToFile(FilePath, S, False);
and;
procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);
begin
If CurUninstallStep=usPostUninstall
then
begin
RePlaceTextinFile(ExpandConstant('{sys}\drivers\etc\hosts'), '127.0.0.1 www.site.com', '');
end;
end;
Одно замечание: удаляется текст, если же в строке больше нет ничего, то остаётся пустая строка. Неплохо бы в этом случае и строку убрать, но, в принципе, можно смириться...
Проверку наличия файла можно убрать.