Всем здрасте. У меня проблема с файлами. Кто может подскажите пожалуйста. В чем собственно суть: Я написал прогу которая должна вводить данные типа запись выдавать их таблицей и сохранять значение в файл. Все пункты работают правильно но когда приходит время читать из файла то оно мне выводит таблицу только с 0. вот текст проги помогите кто чем сможет
Код | Program L9_91826; Uses Crt; Type xt=RECORD nazv:string[14]; kol:integer; cena:real; End; atype=array[1..100] of xt; Var x : string; a : array[1..100] of xt; b : atype; con,item : char; i,j,n : byte; boof : xt; t : boolean; f : file of xt; Procedure OUT (b:atype; n:byte); Begin clrscr; WriteLn(' ПРАЙС ЛИСТ '); WriteLn('┌───┬──────────────┬──────┬───────┐'); WriteLn('│ N │ Название │Кол-во│ Цена │'); WriteLn('├───┼──────────────┼──────┼───────┤'); For i:=1 to n do With b[i] do Begin WriteLn('│',i:3,'│',nazv:14,'│',kol:6,'│',cena:7:2,'│'); If i<>n Then WriteLn('├───┼──────────────┼──────┼───────┤') Else WriteLn('└───┴──────────────┴──────┴───────┘'); End; textcolor(2); window(2,8,79,21); gotoxy(2,14); Write ('Нажмите Enter для возврата в главное меню'); Readln; End; Procedure zap; Begin Writeln('Vvesti: Kuda i imya faila'); readln(x); assign(f,x); rewrite(f); for i:=1 to n do write(f,a[i]); close(f); End; BEGIN t:=true; Repeat textbackground(15); clrscr; window(2,2,79,3); textbackground(0); clrscr; textcolor(2); Write (' Ввод и сортировка массива-вектора с элементом'); WriteLn (' типа запись.'); window(2,5,79,6); clrscr; textcolor(2); gotoxy(37,1); WriteLn ('M E N U'); gotoxy(5,2); Write ('1-ввод'); gotoxy(18,2); write ('2-Vvod iz faila'); gotoxy(35,2); write ('3-zapis'); gotoxy(45,2); Write ('4-сортировка'); gotoxy(65,2); Write ('5-выход'); window(2,8,79,21); clrscr; window(2,23,79,24); clrscr; textcolor(2); WriteLn ('Выберите необходимый пункт меню'); gotoxy(2,wherey); item:=ReadKey; clrscr; case item of '1': Begin t:=false; window(2,23,79,24); clrscr; textcolor(7); window(2,8,79,21); clrscr; {--------------Создание таблицы данных---------------------------} n:=0; Repeat n:=n+1; With b[n] do Begin Write (' Наименование товара - '); ReadLn (nazv); Write (' Количество товара - '); ReadLn (kol); Write (' Цена товара - '); ReadLn (cena); End; WriteLn (' Продолжать ввод ? (y/n)'); con:=ReadKey; Until (con='n') or (con='N') or (con='Т') or (con='т'); OUT(b,n); End; '2': Begin Writeln ('Chitat: jtkuda i imya faila'); readln(x); assign(f,x); reset(f); i:=1; while not EOF(f) do begin read(F,a[i]); i:=i+1; end; n:=i-1; OUT (b,n); end; '3': begin zap; end; '4': Begin if t then Begin window(2,8,79,21); gotoxy(2,1); writeln ('Сначала введите данные'); gotoxy(2,14); write ('Нажмите Enter для возврата в главное меню'); readln; End Else Begin textcolor(7); window(2,8,79,21); clrscr; {-------------Сортировка "пузырек"-----------------------------} For i:=2 to n do Begin For j:=n downto i do If b[j-1].nazv>b[j].nazv Then Begin boof:=b[j-1]; b[j-1]:=b[j]; b[j]:=boof; End; End; OUT (b,n); End; End; '5': exit; End; Until (item='5'); END.
|
|