Ну, мужики, вы даете.
Кто же в цикле "for" удаляет. Тут хоть 'to', хоть 'downto', результат будет один: либо "Rang check error", либо "Access violation...".
Код:
var
SomeFile:TStringList;
i:Integer;
begin
SomeFile:=TStringList.Create;
SomeFile.LoadFromFile('SomeFile');
I := SomeFile.IndexOf('Data3')
if I >= 0 then
SomeFile.Items.Delete(I);
SomeFile.SaveToFile('SomeFile');
SomeFile.Free;
end;
И в файл обратно не надо забывать записывать модифицированные данные.