Столкнулся с проблемой. Написал такой код
procedure SettingsSave(Find, Value : ansistring);
var S : ansistring;
Flag : boolean;
SettingsFile, SettingsFileOld : TextFile;
begin
S := '';
Flag := False;
AssignFile(SettingsFile, 'some.conf');
AssignFile(SettingsFileOld, 'some.conf.old');
Rewrite(SettingsFile);
Reset(SettingsFileOld);
while not eof(SettingsFileOld) do
begin
readln(SettingsFileOld, S);
if (Pos(Find + '=', S) <> 0) then
begin
Flag := True;
S := Find + '=' + Value;
end;
writeln(SettingsFile, S);
end;
if Flag <> True then writeln(SettingsFile, Find + '=' + Value);
Close(SettingsFile);
Close(SettingsFileOld);
end;
Смысл его в том, чтобы при нахождении определенной строки в конфигурационном файле переписывать ее, в ином случае дописывать. Но проблема в том что переменная Flag не изменяется, и по этому строка
if Flag <> True then writeln(SettingsFile, Find + '=' + Value);
не работает. Может кто подсказать где я туплю?