Я занимаюсь лабораторной работой, и мне нужно преобразовать исходный файл по определенному алгоритму. Вот мой код:Почему не удалось стереть и переименовать?
var f1,f2: text;
procedure rounds(var f1, f2: text);
var a: real;
begin
while not EoF(f1) do
begin
read(f1, a);
write(f2, a:0:1, ' ');
end;
end;
begin
assign(f1, './lab.txt');
reset(f1);
assign(f2, './temp'); rewrite(f2);
rounds(f1,f2);
close(f1);
close(f2);
Erase(f1);
rename(f2, 'lab.txt');
end.
Почему бы не удалить f1 и f2 не переименовали? И я могу использовать только последовательные файлы
Потому что вы закрываете эти файлы перед этими операциями. – TLama
Файлы ** должны быть закрыты перед тем, как их можно стереть или переименовать (см. Мой ответ ниже). Обязательно для '' Erase() '' и '' Rename'' не открывать их. – user1438038
@ user1438038, правда, но закрытие * отменяет их. Это была моя точка зрения. – TLama