Deklaracje:
Type
PElement = ^Element;
Element = record
name : string[79];
folder : boolean;
sub : PElement;
parentHead : PElement;
parent : PElement;
next : PElement;
end;
TFile = record
name : string[79];
folder : boolean;
parent : string[79];
kids : boolean;
end;
Procedury:
procedure ZapiszDoPliku(head : PElement);
var
p, e : PElement;
tmp : TFile;
f : file of TFile;
begin
assign(f, 'plik.dtb');
rewrite(f);
if head = nil then writeln('Brak elementow do zapisu')
else
begin
p := head;
while p <> nil do
begin
tmp.name := p^.name;
tmp.folder := p^.folder;
tmp.kids := false;
if p^.folder then
begin
e := p^.sub;
if e^.next = nil then tmp.kids := false
else
begin
tmp.kids := true;
ZapiszDoPliku(e);
end;
end;
tmp.parent := '';
write(f, tmp);
p := p^.next;
end;
end;
close(f);
end;
procedure WczytajZPliku(head : PElement);
var
p, e, el : PElement;
tmp : TFile;
f : file of TFile;
begin
assign(f, 'plik.dtb');
reset(f);
p := head;
while not eof(f) do
begin
read(f, tmp);
NowyElement(p, tmp.name, tmp.folder);
if tmp.kids then
begin
el := PrzeszukajListe(p, tmp.name);
WczytajZPliku(el^.sub);
end;
end;
close(f);
end;
//i jeszcze funkcja PrzeszukajListe
function PrzeszukajListe(head : PElement; nazwa : string): PElement;
var p : PElement;
begin
p := head;
while (p <> nil) and (p^.name <> nazwa) do p := p^.next;
PrzeszukajListe := p;
end;
Mam zastosowane listy list (listy podwieszone?). Teraz potrzebuję zapis do pliku i odczyt z pliku, ale wywala blad RunError(5) in file POINTER at line -1
Ostatnie, co mi zostało do zrobienia w projekcie, który jest oczywiście do jutra...
Czy ktokolwiek mógłby jakiekolwiek rady dać?