Compaq AAQ2G1FTK Marine Radio User Manual


 
Processing Files and Records
6.4 Reading Files
Example 635 (Cont.) Reading an Indexed File Dynamically, with READ PRIOR
*+
* READ PREVIOUS after file open for IO, from a middle
* record to beginning record on primary key.
*+
OPEN I-O F.
MOVE "2345678990" TO R.
READ F INVALID KEY DISPLAY "?6" GO TO P2 END-READ.
IF R NOT = "2345678990" THEN DISPLAY "?7 " R.
READ F PREVIOUS AT END DISPLAY "?8" GO TO P2 END-READ.
IF R NOT = "1234567890" THEN DISPLAY "?9 " R.
READ F PREVIOUS AT END DISPLAY "?10" GO TO P2 END-READ.
IF R NOT = "0123456789" THEN DISPLAY "?11 " R.
READ F PREVIOUS AT END GO TO P2.
DISPLAY "?12 " R.
*+
* Multiple READ PREVIOUS on a display alternate key with
* duplicates.
*+
P2. MOVE "91" TO K2.
READ F KEY K2 INVALID KEY DISPLAY "?13" GO TO P5 END-READ.
R NOT = "9876543291" THEN DISPLAY "?14 " R.
READ F PREVIOUS AT END DISPLAY "?15" GO TO P5 END-READ.
IF R NOT = "2345678990" THEN DISPLAY "?16 " R.
READ F PREVIOUS AT END DISPLAY "?17" GO TO P5 END-READ.
IF R NOT = "1234567890" THEN DISPLAY "?18 " R.
READ F PREVIOUS AT END DISPLAY "?19" GO TO P5 END-READ.
IF R NOT = "0123456789" THEN DISPLAY "?20 " R.
READ F PREVIOUS AT END GO TO P5.
DISPLAY "?21 " R.
P5. CLOSE F.
DISPLAY "***END***".
STOP RUN.
Reading an Indexed File from Other Languages on Tru64 UNIX
COBOL supports more data types for indexed keys than are supported in the
ISAM definition. For keys in any of the data types not supported in the ISAM
definition, the run-time system will translate those keys to strings. Table 6–7
specifies the appropriate mapping to create or use indexed files outside of COBOL
(For example, if you are using the C language on Tru64 UNIX and you need to
access COBOL files). See the ISAM package documentation for details of the file
format.
Table 67 Indexed FileISAM Mapping
COBOL Data Type Maps To Transformation Method
character string
PIC x(n)
CHARTYPE None.
short signed int
PIC S9(4) COMP
INTTYPE C-ISAM
long signed int
PIC S9(9) COMP
LONGTYPE C-ISAM
(continued on next page)
Processing Files and Records 647