IDENTIFICATION DIVISION. PROGRAM-ID. FILESTAT. DATA DIVISION. WORKING-STORAGE SECTION. ?SECTION FILE-STAT-MESSAGE 01 FILE-STAT-MESSAGE. 05 FILE-STAT PIC X(02) VALUE "00". 88 VALID-KEY VALUE "00". 05 FILLER PIC X(01) VALUE ":" . 05 FILE-GUARDIAN-ERR PIC 9(04) VALUE 0. 05 FILLER PIC X(01) VALUE " ". 05 FILE-STAT-MSG PIC X(62) VALUE " ". 01 FILE-GUARDIAN-DESC PIC X(80) VALUE " ". /******************* PROCEDURE DIVISION. ******************** ?SECTION FILE-STAT-DECLARATIVES DECLARATIVES. INPUT-SECTION. USE AFTER STANDARD ERROR PROCEDURE ON INPUT. PERFORM FILE-STAT-EDIT. I-O-SECTION. USE AFTER STANDARD ERROR PROCEDURE ON I-O. PERFORM FILE-STAT-EDIT. OUTPUT-SECTION. USE AFTER STANDARD ERROR PROCEDURE ON OUTPUT. PERFORM FILE-STAT-EDIT. EXTEND-SECTION. USE AFTER STANDARD ERROR PROCEDURE ON EXTEND. PERFORM FILE-STAT-EDIT. ?SECTION FILE-STAT-EDIT FILE-STAT-EDIT. IF FILE-STAT = "00" CONTINUE ELSE EVALUATE FILE-STAT WHEN "04" MOVE "Short Record READ*" TO FILE-STAT-MSG WHEN "05" MOVE "FILE*" TO FILE-STAT-MSG WHEN "07" MOVE "Fast I/O or Tape*" TO FILE-STAT-MSG WHEN "10" MOVE "End of File*" TO FILE-STAT-MSG WHEN "14" MOVE "End of Relative File*" TO FILE-STAT-MSG WHEN "30" MOVE "Operation*" TO FILE-STAT-MSG WHEN "21" MOVE "Key Changed on Rewrite*" TO FILE-STAT-MSG WHEN "22" MOVE "Duplicate Key*" TO FILE-STAT-MSG WHEN "23" MOVE "Key not found*" TO FILE-STAT-MSG WHEN "24" MOVE "Write Past Eof*" TO FILE-STAT-MSG WHEN "30" MOVE "Temporary Error*" TO FILE-STAT-MSG WHEN "34" MOVE "Seq Write Past Eof*" TO FILE-STAT-MSG WHEN "35" MOVE "Open File Error*" TO FILE-STAT-MSG WHEN "37" MOVE "Device Open Error*" TO FILE-STAT-MSG WHEN "38" MOVE "Open Parameter Error*" TO FILE-STAT-MSG WHEN "39" MOVE "File SELECT Mismatch*" TO FILE-STAT-MSG WHEN "41" MOVE "File is NOT Closed*" TO FILE-STAT-MSG WHEN "42" MOVE "File is NOT Opened*" TO FILE-STAT-MSG WHEN "43" MOVE "Del/Rewrite not Read*" TO FILE-STAT-MSG WHEN "44" MOVE "Rewrite Size Differs*" TO FILE-STAT-MSG WHEN "46" MOVE "Read Next not Started*" TO FILE-STAT-MSG WHEN "47" MOVE "Read/Start Open*" TO FILE-STAT-MSG WHEN "48" MOVE "Open is incompatible*" TO FILE-STAT-MSG WHEN "49" MOVE "File not Opened I/O*" TO FILE-STAT-MSG WHEN "90" MOVE "Open Not Timed I/O*" TO FILE-STAT-MSG WHEN "91" MOVE "I-O*" TO FILE-STAT-MSG WHEN "97" MOVE "Read/Start*" TO FILE-STAT-MSG WHEN OTHER MOVE "Unknown condition*" TO FILE-STAT-MSG.
MOVE GUARDIAN-ERR TO FILE-GUARDIAN-ERR EVALUATE FILE-GUARDIAN-ERR WHEN 01 MOVE "EOF*" TO FILE-GUARDIAN-ERR-DESC WHEN 06 MOVE "$RECEIVE*" TO FILE-GUARDIAN-ERR-DESC WHEN 09 MOVE "Locked Record*" TO FILE-GUARDIAN-ERR-DESC WHEN 10 MOVE "Duplicate Record*" TO FILE-GUARDIAN-ERR-DESC WHEN 11 MOVE "Does Not Exist*" TO FILE-GUARDIAN-ERR-DESC WHEN 14 MOVE "Device Does Not Exist*" TO FILE-GUARDIAN-ERR-DESC WHEN 18 MOVE "Node Does Not Exist*" TO FILE-GUARDIAN-ERR-DESC WHEN 23 MOVE "Out of Bounds*" TO FILE-GUARDIAN-ERR-DESC WHEN 40 MOVE "Timed Out*" TO FILE-GUARDIAN-ERR-DESC WHEN 45 MOVE "File is Full*" TO FILE-GUARDIAN-ERR-DESC WHEN 46 MOVE "Bad Position*" TO FILE-GUARDIAN-ERR-DESC WHEN 73 MOVE "Locked*" TO FILE-GUARDIAN-ERR-DESC WHEN OTHER MOVE "*" TO FILE-GUARDIAN-ERR-DESC. STRING FILE-STAT-MSG DELIMITED BY "*" ":" DELIMITED BY SIZE FILE-GUARDIAN-ERR-DESC DELIMITED BY "*" INTO FILE-STAT-MSG. END DECLARATIVES. END PROGRAM FILESTAT.
Saturday, October 2, 2010 11:38:49 AM, From: jim, To: Tandem