MODULE IOChanFileProg; (* IOChan over files: write a channel to a file, close, reopen for reading, read the line and integer back. Exit 3. *) IMPORT IOChan, Strings; VAR ExitCode : INTEGER; VAR f : IOChan.ChanId; VAR name, line : ARRAY [0 .. 63] OF CHAR; BEGIN Strings.Assign("gen_ssa/_iochan_tmp.txt", name); f := IOChan.OpenWrite(name); IF IOChan.IsOpen(f) THEN IOChan.WriteString(f, "line one"); IOChan.WriteLn(f); IOChan.WriteInt(f, -7); IOChan.WriteLn(f); IOChan.Close(f) END; f := IOChan.OpenRead(name); IF IOChan.IsOpen(f) THEN IOChan.ReadString(f, line); IF line = "line one" THEN ExitCode := ExitCode + 1 ELSE ExitCode := 90 END; IF IOChan.ReadInt(f) = -7 THEN ExitCode := ExitCode + 2 ELSE ExitCode := 91 END; IOChan.Close(f) END END IOChanFileProg.