Не могу исправить ошибку: Can't use read or write on untyped file - Free Pascal
Формулировка задачи:
Листинг программы
- Type
- TTovar = record
- Nazvan:string[20];
- Date:string[10];
- Proivod:string[20];
- end;
- TPostavka = record
- NumNakladn:word;
- FirmaPost:string[20];
- Volume:word;
- SumPost:LongInt;
- NumRec:byte;
- Tovar:TTovar;
- end;
- var i,n,Count:integer;
- f:file of TPostavka;
- Tovars :array[1..500] of TPostavka;
- begin
- Textbackground(7);
- clrscr;
- textcolor(9);
- writeln ('Для завершения ввода введите Ctrl-z');
- while not eof do
- begin
- Inc(Count);
- write('Введите номер накладной = ');
- readln(Tovars[Count].NumNakladn);
- write('Введите номер накладной = ');
- readln(Tovars[Count].FirmaPost);
- write('Введите номер накладной = ');
- readln(Tovars[Count].Volume);
- write('Введите номер накладной = ');
- readln(Tovars[Count].SumPost);
- write('Введите число записей в накладной №= ',Tovars[Count].NumNakladn, ' n = ');
- readln(Tovars[Count].NumRec);
- for i:=1 to Tovars[Count].NumRec do
- begin
- write('Введите название товара = ');
- readln(Tovars[Count].Tovar.Nazvan);
- write('Введите название товара = ');
- readln(Tovars[Count].Tovar.Date);
- write('Введите название товара = ');
- readln(Tovars[Count].Tovar.Proivod);
- end;
- end;
- Assign(f,'C:\BD\printing.log');
- Rewrite(f);
- writeln(f,'Отчет по товарам':40);
- write(f,'Номер':6);
- write(f,'Фирма':20);
- write(f,'Кол-во':8);
- writeln(f,'Сумма':8);
- for i:=1 to Count do
- begin
- with Tovars[i] do
- begin
- write(f, NumNukladn:6);
- write(f, FirmaPost:20);
- write(f, Volume:8);
- writeln(f, SumPost:8);
- write(f, 'Товар':50);
- write(f, 'Дата':60);
- writeln(f, 'Производитель':75);
- for j:=1 to NumRec do
- with Tovar do
- begin
- write(f, Nazvan:50);
- write(f, Date:60);
- writeln(f, Proizvod:75);
- end;
- end;
- end;
- close(f);
- readln();
- end.
Забыл написать вот эта Error: Can't use read or write on untyped file.
Решение задачи: «Не могу исправить ошибку: Can't use read or write on untyped file»
textual
Листинг программы
- write(f, Tovars[k]);
Объяснение кода листинга программы
- Открывается файл
f
для записи. - В каждой итерации цикла записывается значение переменной
Tovars[k]
. - Ошибка
Can't use read or write on untyped file
указывает на то, что файлf
не был корректно подготовлен для записи или чтения. - Возможно, файл
f
не был создан или не был открыт в режиме записи. - Также возможно, что файл
f
был открыт в режиме чтения, а не записи. - Решение проблемы может быть в проверке состояния файла перед записью или открытием его в режиме записи.
- Также может потребоваться добавить обработку ошибок в код для более точного определения причины возникновения ошибки.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д