Mieszane typy + wskaźniki problem z poruszaniem się po strukturze

0

Witam.

Tworzę potwora "bazę danych". Ot mieszana struktura na wskaźnikach.

Typy po kolei (_ptr oznacza wskaźnikowy)
head : civil_ptr
building : patch
patch1 : buildings
down : units_ptr

W skrócie wszystko na rekordach.

Problem jest jednak taki, że muszę się po tym potworze poruszać.
do procedury poniższej chciałem po zmiennej przekazywać
x := head.building.patch1

Kwestia tego, że wydawało mi się, iż typ dla zmiennej x powinien być taki sam jak dla head. Każdy z typów niżej zawiera się w tym wyższym. Tzn. w civil_ptr mamy element typu patch, w patch typu buildings etc.

Niestety tak nie idzie.

Dając x typ 1 wyżej tj. chcąc przypisać x := head.building.patch1 : buildings nagle okazuje się, że head.building.patch1.down wskazuje na nil,a po przypisaniu do x : buildings dla x.down na coś wskazuje.

Ogólnie nie mam pojęcia jak poruszać się po tej bestii. Liczę na wsparcie.

 
    if head.building.patch1.down <> nil then
      begin
        reading (main, tmp, a);
      end
    else
      begin
        assign (a, head.building.patch1.value);
        reset (a);

        new (head.building.patch1.down);
        tmp := head.building.patch1.down;
        tmp.next := nil;
        tmp.prev := nil;

        main := tmp;
        readln (a,line);
        reading2 (tmp,a,line);
    end;
0

Tworzę potwora "bazę danych".
dobrze powiedziane — potwora:

assign (a, head.building.patch1.value);

wszędzie nic nie mówiące nazwy, jakieś reading2

, nagle jakieś <code noframe>head.building.patch1.value

okazuje się czym – nazwą pliku? i chcesz to przypisywać do jakiegoś ix

a?
WTF! tworzysz nieczytelny kod i od razu się w nim pogubiłeś.

1 użytkowników online, w tym zalogowanych: 0, gości: 1