Om te zien of al mijn gegevens bij de ParseInfoConsumer wel goed opgeslagen worden in mijn stationlijst en tramlijst, heb ik een testprocedure geschreven in mijn module XMLInlezen.Mod.
Om een vreemde reden kan ik de node niet uitprinten via polymorfisme. Het lukt wel als ik gebruik maak van TypeTest/TypeGuard en het volgende schrijf:
Code: Select all
IF (node IS MetroParseInfoConsumer.Station) THEN (* voorlopig maar even uitgeprint via TypeTest/TypeGuard *)
OutExt.String(node(MetroParseInfoConsumer.Station)^.naam);
END;
Wanneer ik het wil doen via polymorfisme (zie onderaan) krijg ik steeds volgende error "err 72 procedure must be bound to a record of the same scope" en zegt de de error zit bij de (node : MetroParseInfoConsumer.Station).
Code: Select all
PROCEDURE Test*;
VAR
file : StringTypes.SimpleTypeString;
node : OOLijst.ElementNode;
BEGIN
file := "GoodFile.txt";
LeesIn(file);
OutExt.String("Hij gaat nu de eerste Node halen uit de stationlijst en het veld naam van deze node uitprinten");
OutExt.Ln;
OutExt.String("De naam van het eerste station is dus : ");
node := MetroParseInfoConsumer.stationlijst^.GetNode(1);
node^.Print;
END Test;
PROCEDURE (node : MetroParseInfoConsumer.Station) Print*();
BEGIN
OutExt.String(node^.naam);
END Print;
Groet,
Glenn