-1

Reading a hex representation of value in 2 characters, for example 0C from a text file, I need to store the corresponding hex value X'0C' in a program variable as in the following code. I know that COBOL allows to do something like MOVE X'0C' TO somevariable but in my case the literal "0C" is stored in file's record and is not a literal. Thank you.

IDENTIFICATION DIVISION.
       PROGRAM-ID.    T.
       ENVIRONMENT    DIVISION.
       CONFIGURATION  SECTION.
       SPECIAL-NAMES.
       INPUT-OUTPUT   SECTION.
       FILE-CONTROL.           
           SELECT    FD-DATA-FILE ASSIGN TO   WSIA-FN-FULL 
                     ORGANIZATION IS LINE SEQUENTIAL.                 
      *> --------------------------------------------------------------
       DATA           DIVISION.       
       FILE           SECTION.
       FD  FD-DATA-FILE.
       01  FD-DATA-REC.
           05 POS1 PIC XX.
           05 POS2 PIC XX.         
      *>===============================================================
       WORKING-STORAGE SECTION.
       01  WS-HEX PIC X.
      *>---------------------------------------------------------------    
       PROCEDURE DIVISION.                    
           OPEN FD-DATA-FILE.
           READ RD-DATA-FILE.
           *> how to accomplish this: The file may contain any 
           *> valid combination representing a hex value (15x15) 
           *> different values. 
           
           *> IF POS1 CONTAINS 'FF'  MOVE X'FF' TO WS-HEX.
           *> IF POS1 CONTAINS '0C'  MOVE X'0C' TO WS-HEX.
           *>....
           
           CLOSE FD-DATA-FILE.
           STOP RUN.
    
NoChance
  • 5,632
  • 4
  • 31
  • 45

1 Answers1

1

If your compiler supports it, use the HEX-TO-CHAR intrinsic function.

cschneid
  • 10,237
  • 1
  • 28
  • 39