IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Проблема с прогой на линейные списки.
TheKnyazz
сообщение 1.02.2009 19:08
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 15
Пол: Мужской

Репутация: -  0  +


Здравствуйте!Я очень внимательно прочитал ваш достаточно качественный ЧаВо по файлам и динамическим спискам, но тут проблема, я не знаю куда прилепить процедуру закрытия файла, чтоб в моем ткст файле сохранялись мои записи в таблицу, и при следующем запуске программы, я мог загрузить из файла значения, и продолжить работу со старыми данными. Так же небольшая проблема с пониманием такой строки моего задания "создать процедуру, которая вставляет в список 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.




Основные ф-ции работают вроде, а вот чтоб сохранять данные, не получается.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
Гость
сообщение 2.02.2009 23:37
Сообщение #2


Гость






Спасибо огромное. Вы очень мне помогли
 К началу страницы 
+ Ответить 

Сообщений в этой теме
TheKnyazz   Проблема с прогой на линейные списки.   1.02.2009 19:08
volvo   Перед тем, как выйти из программы (при выборе 6-го...   1.02.2009 19:21
TheKnyazz   Что-то я зашел в тупик. Из ваших слов procedure Es...   1.02.2009 20:20
volvo   Не-а... Я сказал: , это делается Rewrite-ом... И з...   1.02.2009 20:31
TheKnyazz   Я надеюсь, ты сохранил где-то указатель на начало...   1.02.2009 21:47
volvo   Не вот у тебя когда происходит просмотр списка, ты...   1.02.2009 22:00
TheKnyazz   Вас понял, из-за таких "гениев" как я пр...   1.02.2009 22:50
Alma   Я конечно прошу прощения. Но у меня аналогичная пр...   2.02.2009 21:22
volvo   Я советовал записывать в файл, а не выводить на эк...   2.02.2009 21:39
Гость   Разница заметна, спасибо, сама не увидела:) Единст...   2.02.2009 22:17
volvo   Потому что в исходной программе работа была с текс...   2.02.2009 22:30
Гость   сохранит данные в файл, главное потом правильно и...   2.02.2009 23:04
volvo   А если написать эту процедуру правильно? Вот так, ...   2.02.2009 23:19
Гость   Спасибо огромное. Вы очень мне помогли   2.02.2009 23:37


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 18.07.2025 14:16
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"