COBOL2002 ユーザーズガイド

[目次][用語][索引][前へ][次へ]

15.3 使用例

バイトストリーム入出力サービスルーチンの使用例を次に示します。

32bit版PC(x86) COBOL2002の場合
 
  IDENTIFICATION DIVISION.
  PROGRAM-ID. SAMPLE1.
    :
  DATA DIVISION.
  WORKING-STORAGE SECTION.
    01 FILE-NAME      PIC X(255)      VALUE 'C:\sample\file.dat'.
    01 RSV            PIC X     COMP-X VALUE 0.
    01 PARM           PIC X     COMP-X VALUE 0.
    01 OPEN-MODE      PIC X     COMP-X VALUE 2.
    01 EXCLUSION-MODE PIC X     COMP-X VALUE 0.
    01 HANDLE         PIC X(4)  COMP-X VALUE 0.
    01 DATA-START     PIC X(8)  COMP-X.
    01 DATA-LENGTH    PIC X(4)  COMP-X.
    01 BUF            PIC X(128)      VALUE ALL '*'.
        :
  PROCEDURE DIVISION.
 * バイトストリーム処理用のファイルを書き出しモードで開く
      CALL 'CBLSTMOPEN'
            USING FILE-NAME OPEN-MODE EXCLUSION-MODE RSV HANDLE.
      IF (RETURN-CODE NOT = 0) THEN
 * エラー処理
        :
      END-IF.
        :
 * ファイルの先頭を0とする相対位置63(64バイト目)から
 * 128バイトの長さのデータを書き出す
      MOVE 63  TO DATA-START.
      MOVE 128 TO DATA-LENGTH.
      CALL 'CBLSTMWRITE'
            USING HANDLE DATA-START DATA-LENGTH PARM BUF.
      IF (RETURN-CODE NOT = 0) THEN
 * エラー処理
        :
      END-IF.
        :
 * ファイルを閉じる
      CALL 'CBLSTMCLOSE' USING HANDLE.
      IF (RETURN-CODE NOT = 0) THEN
 * エラー処理
        :
      END-IF.
  
      STOP RUN.
 

64bit版PC(x64) COBOL2002の場合
 
  IDENTIFICATION DIVISION.
  PROGRAM-ID. SAMPLE1.
    :
  DATA DIVISION.
  WORKING-STORAGE SECTION.
    01 FILE-NAME      PIC X(255)      VALUE 'C:\sample\file.dat'.
    01 RSV            PIC X     COMP-X VALUE 0.
    01 PARM           PIC X     COMP-X VALUE 0.
    01 OPEN-MODE      PIC X     COMP-X VALUE 2.
    01 EXCLUSION-MODE PIC X     COMP-X VALUE 0.
    01 HANDLE         PIC X(8)  COMP-X VALUE 0.
    01 DATA-START     PIC X(8)  COMP-X.
    01 DATA-LENGTH    PIC X(4)  COMP-X.
    01 BUF            PIC X(128)      VALUE ALL '*'.
        :
  PROCEDURE DIVISION.
 * バイトストリーム処理用のファイルを書き出しモードで開く
      CALL 'CBLSTMOPEN'
            USING FILE-NAME OPEN-MODE EXCLUSION-MODE RSV HANDLE.
      IF (RETURN-CODE NOT = 0) THEN
 * エラー処理
        :
      END-IF.
        :
 * ファイルの先頭を0とする相対位置63(64バイト目)から
 * 128バイトの長さのデータを書き出す
      MOVE 63  TO DATA-START.
      MOVE 128 TO DATA-LENGTH.
      CALL 'CBLSTMWRITE'
            USING HANDLE DATA-START DATA-LENGTH PARM BUF.
      IF (RETURN-CODE NOT = 0) THEN
 * エラー処理
        :
      END-IF.
        :
 * ファイルを閉じる
      CALL 'CBLSTMCLOSE' USING HANDLE.
      IF (RETURN-CODE NOT = 0) THEN
 * エラー処理
        :
      END-IF.
  
      STOP RUN.