1. Заголовок темы должен быть информативным. В противном случае тема удаляется ... 2. Все тексты программ должны помещаться в теги [code=pas] ... [/code]. 3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали! 4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора). 5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM! 6. Одна тема - один вопрос (задача) 7.Проверяйте программы перед тем, как разместить их на форуме!!! 8.Спрашивайте и отвечайте четко и по существу!!!
Здравствуйте!Я очень внимательно прочитал ваш достаточно качественный ЧаВо по файлам и динамическим спискам, но тут проблема, я не знаю куда прилепить процедуру закрытия файла, чтоб в моем ткст файле сохранялись мои записи в таблицу, и при следующем запуске программы, я мог загрузить из файла значения, и продолжить работу со старыми данными. Так же небольшая проблема с пониманием такой строки моего задания "создать процедуру, которая вставляет в список L новый элемет Е1, за каждым вхождением элемента Е" Я просто не понимаю, что это значит. У нас была только 1 лекция по этой теме, но это нам не обьясняли, а на следующее практическое задание тянуть готовую лабу. Обьясните пожалуйста, что оно такое.
Вот мой исходник.
Program lab9; Uses Crt; Type Data= Record num:byte; FIO:string[15]; year: integer; sex: char; stat: string[11]; child: byte; salary: integer; End; Ukaz=^Query; Query=Record Inf:Data; Next:Ukaz End; Var NewE,Left,Right,Temp:Ukaz; Z:Data; Key:byte; f:text;
Procedure Org; var i: integer; Begin clrscr; reset (f); Writeln('vypolnyaetsya procedura organizacii ocheredi'); write ('zagruzka dannyh iz faila'); for i:= 1 to 7 do begin delay (300); write ('.') end; writeln; writeln ('zagruzka zavershena'); readln; Writeln('======================================== '); with z do Readln(f,num,Fio,year,stat,sex,child,salary); New(NewE); NewE^.Inf.num:=Z.num; NewE^.Inf.Fio:=Z.Fio; NewE^.Inf.year:=Z.year; NewE^.Inf.stat:=Z.stat; NewE^.Inf.sex:=Z.sex; NewE^.Inf.child:=Z.child; NewE^.Inf.salary:=Z.salary; NewE^.Next:=nil; Right:=NewE; Left:=NewE; While not eof(f) Do Begin with z do Readln(f,num,Fio,year,stat,sex,child,salary); New(NewE); NewE^.Inf.num:=Z.num; NewE^.Inf.Fio:=Z.Fio; NewE^.Inf.year:=Z.year; NewE^.Inf.stat:=Z.stat; NewE^.Inf.sex:=Z.sex; NewE^.Inf.child:=Z.child; NewE^.Inf.salary:=Z.salary; NewE^.Next:=Nil; Right^.Next:=NewE; Right:=NewE End End; Procedure Dob; Begin Writeln('vvedite №'); Readln(Z.num); Writeln('vvedite familiyu'); Readln(Z.Fio); If Z.Fio='*' Then Exit; Writeln('vvedite god rojdeniya'); Readln(Z.year); Writeln('vvedite pol'); Readln(Z.sex); writeln ('vvedite status'); readln (z.stat); Writeln('vvedite kolichestvo detei'); Readln(Z.child); Writeln('vvedite zarplatu'); Readln(Z.salary); New(NewE); NewE^.Inf.num:=Z.num; NewE^.Inf.Fio:=Z.Fio; NewE^.Inf.year:=Z.year; NewE^.Inf.stat:=Z.stat; NewE^.Inf.sex:=Z.sex; NewE^.Inf.child:=Z.child; NewE^.Inf.salary:=Z.salary; NewE^.Next:=nil; If Right=Nil Then Left:=NewE Else Right^.Next:=NewE; Right:=NewE; End;
Procedure Udal; Begin Writeln('isklyuchaetsya golovnoi element ocheredi'); Writeln('press Enter'); Readln; If Left<>Nil Then Begin Temp:=Left; Left:=Left^.Next; Dispose(Temp); If Left=Nil Then Right:=Nil; End End;
Procedure Prosmotr; Var i:integer; Begin if left=nil then begin writeln ('spisok pustoi'); readln; clrscr; exit end else Writeln('ochered soderjit sleduyuschie elementy'); Temp:=Left; While Temp<>nil Do Begin Writeln(Temp^.Inf.num,' ',Temp^.Inf.Fio,' ',Temp^.Inf.year,' ',Temp^.Inf.sex,' ', Temp^.Inf.stat,' ',Temp^.Inf.child,' ',Temp^.Inf.salary); Temp:=Temp^.Next; End; Writeln('press Enter'); Readln; clrscr; End;
procedure my_var; Begin End;
begin assign (f,'d:\lab9.txt'); {$I-}; reset(f); {$I+}; if IOResult=0 then writeln ('file opened successfully') else begin writeln ('no input file'); readln; exit; end; Right:=Nil; Left:=Nil; ClrScr; while true do begin Writeln('1-organizaciya spiska'); Writeln('2-dobavlenie elementa'); Writeln('3-udalenie elementa'); Writeln('4-prosmotr spiska'); writeln('5-moe zadanie'); Writeln('6-vyhod'); Writeln('-------------------------------'); readln(key); Case Key Of 1 : Org; 2 : Dob; 3 : Udal; 4 : Prosmotr; 5 : my_var; 6 : EXIT; End; end; End.
Основные ф-ции работают вроде, а вот чтоб сохранять данные, не получается.