Помощь - Поиск - Пользователи - Календарь
Полная версия: Чтение двусвязного кольцевого списка из файла
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Everveit
Вот, что я написала. Процедура CreateNewNode - добавляет узел в конец списка.

Procedure Readlist (var p:dlist);
var
f: file of integer;
q: dlist;
pr,info: integer;
begin
Assign(f,'spisok.dat');
Reset(f);
while not (eof(f)) do
begin
read(f,info);
CreateNewNode(p,info);
end;
close(f);
end;


Вот при этом процедура сохранения в этот файл списка:

Procedure Savelist (p:dlist);
var
f: file of integer;
q: dlist;
begin
Assign(f,'spisok.dat');
rewrite(f);
write (f,p^.info);
q:=p^.next;
while q<>p do
begin
write(f,p^.info);
q:=q^.next;
end;
close(f);
end;


Сейчас при таких процедурах он мне из файла выводит список, состоящий из первых элементов (одни и те же значения). Что не так? Буду очень благодарна если поможете, так как мне сдавать это всё завтра.
volvo
q:=p^.next;
while q<>p do
begin
write(f,q^.info); { <--- q а не p }
q:=q^.next; { здесь тоже... }
end;
Everveit
Каждый раз, когда я вижу правильное решение я начинаю удивляться своим тупым ошибкам. Спасибо большое в который раз. smile.gif smile.gif smile.gif
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.