PROCEDURE ReadWorld(input: FILE; VAR world: World;
VAR noflines,
nofcolumns: WorldSize) : BOOLEAN;
VAR
line, column: WorldSize;
ch: CHAR;
BEGIN
InitWorld(world);
line := 0; column := 0;
WHILE Fgetc(ch, input) DO
IF ch = nl THEN
INC(line); column := 0;
ELSE
IF (line = maxsize) OR (column = maxsize) THEN
WriteString("Die Eingabe ist zu gross!");
WriteLn; RETURN FALSE
END;
world[line, column] := ch; INC(column);
END;
END;
IF (ORD(column) >= columns) OR (ORD(line) >= lines) THEN
WriteString("Diese Welt ist zu gross fuer ...!");
WriteLn;
RETURN FALSE
END;
nofcolumns := maxsize; noflines := maxsize;
IF ORD(nofcolumns) > columns THEN
nofcolumns := columns
END;
(* die letzte Zeile wird fuer die Eingabe reserviert *)
IF ORD(noflines) > lines-1 THEN noflines := lines-1 END;
RETURN TRUE
END ReadWorld;
|