В чём заключается проблема? Ошибка на Reset "Ошибка времени выполнения", как пофиксить?
program Zadanie;
const
filename = 'dat.txt';
var
f: Text; // Файловая переменная.
i: integer; // Переменная для хранения значения количества подсчитываемых элементов.
a: real; // Промежуточная переменная для хранения значения читаемых элементов.
sum: real; // переменная для хранения значения произведения.
begin
randomize;
assign(f,filename); // Связывание имени файла с файловой переменной.
Reset(f); // Установка режима чтения файла.
i:= 0; // Установка счетной переменной в нулевое состояние.
sum:= 0;
while not seekeof(f) do // Цикл для поэлементного чтения из файла.
begin
read(f,a); // Чтение информации из файла.
write(a:8:2);
sum:= sum + a;
inc(i);
end;
writeln;
writeln('The number of extracted numbers from the file is: ', i);
writeln('Summa numbers from a file is equal to: ', sum:0:2);
Close(f); // Закрытие файла.
readln;
end.
Ответы (1 шт):
Автор решения: Archery
→ Ссылка
Во-первых, ваш код работает. Ошибка возможна потому, что не находит файл или он занять другим процессом.
Во - вторых, раз это PascalABC.Net, то почему бы не писать в его стиле
const
filename = 'dat.txt';
var
f: Text; // Файловая переменная.
i: integer; // Переменная для хранения значения количества подсчитываемых элементов.
a: real; // Промежуточная переменная для хранения значения читаемых элементов.
sum: real;// переменная для хранения значения произведения.
begin
// Rewrite(f, filename);
// f.Writeln(2);
// f.Writeln(7);
// f.Close();
f := OpenRead(filename);
i := 0; // Установка счетной переменной в нулевое состояние.
sum := 0;
while not f.Eof do // Цикл для поэлементного чтения из файла.
begin
a := f.ReadlnReal(); // Чтение информации из файла.
write(a:8:2);
sum := sum + a;
inc(i);
end;
f.Close();
writeln;
writeln('The number of extracted numbers from the file is: ', i);
writeln('Summa numbers from a file is equal to: ', sum:0:2);
readln;
end.