SIT
COBOLは、Windowsのファイルやディレクトリについての操作機能を、組み込みサブルーチンとして提供している。
提供しているサブルーチンは下記のとおりである。
組み込みサブルーチンの名前および機能については、opensource
COBOLに準拠している。
(サンプルプログラム名:組み込みサブルーチン.cob)
カレントディレクトリの取得を行うには、CBL_GET_CURRENT_DIRを使用する。
CALL "CBL_GET_CURRENT_DIR" USING
BY VALUE 0
BY VALUE { 定数-1 | データ名-1 }
BY REFERENCE データ名-2
SIT
COBOLは、実行するプログラムの存在するディレクトリが、初期のカレントディレクトリとなる。
SIT
COBOLエディタによって、まだどこにも書き出されていないプログラムが実行された場合は、sitcobol.exe
が存在するディレクトリが、カレントディレクトリとなる。
000000 01 CURR-DIR PIC X(100).
000000 :
000000 MOVE ALL "*" TO CURR-DIR.
000000 CALL "CBL_GET_CURRENT_DIR" USING VALUE 0 VALUE 50 CURR-DIR.
000000 DISPLAY "カレント: " CURR-DIR *> カレントディレクトリが表示される。
上記は、カレントディレクトリを、50バイトのみ取得しようとしている。したがって、CURR-DIRの51バイト以降は”*“のままである。
カレントディレクトリを変更するには、CBL_CHANGE_DIRを使用する。
CALL "CBL_CHANGE_DIR" USING { 定数-1 | データ名-1}
SIT
COBOLは、実行するプログラムの存在するディレクトリが、初期のカレントディレクトリとなる。
SIT
COBOLエディタによって、まだどこにも書き出されていないプログラムが実行された場合は、
sitcobol.exe が存在するディレクトリが、カレントディレクトリとなる。
00000 CALL "CBL_CHANGE_DIR" USING "./tmp".
上記は、カレントディレクトリを、相対パス指定で”./tmp”を指定した例である。 ディレクトリとして、‘/’を使用しているが、もちろん、“.\tmp” と指定してもよいが、’\‘記号が特殊文字と 認識されるケースがあるので、’/’を推奨する。
ファイルをコピーするには、CBL_COPY_FILEを使用する。
CALL "CBL_COPY_FILE" USING { 定数-1 | データ名-1 } {定数-2 | データ名-2 }
000000 CALL "CBL_COPY_FILE" USING "./PROGRAM.cob" "D:/save".
上記では、カレントディレクトリにある’PROGRAM.cob’を、Dドライブの/saveというディレクトリ配下にコピーしている。
ファイル名を変更するには、CBL_RENAME_FILEを指定する。
CALL "CBL_RENAME_FILE" USING { 定数-1 | データ名-1 } {定数-2 | データ名-2 }
000000 CALL "CBL_RENAME_FILE" USING "./PROGRAM.cob" "./PROGRAM_SAVE.cob".
上記では、カレントディレクトリにある’PROGRAM.cob’を、’PROGRAM_SAVE.cob’と名前を変えている。
000000 CALL "CBL_RENAME_FILE" USING "./PROGRAM.cob" "D:/save/PROGRAM_SAVE.cob".
上記では、カレントディレクトリにある’PROGRAM.cob’を、Dドライブの/saveというディレクトリ配下に名前を変えて 移動している。
ディレクトリを作成するには、CBL_CREATE_DIRを使う。
CALL "CBL_CREATE_DIR" USING { 定数-1 | データ名-1 }
000000 CALL "CBL_CREATE_DIR" USING "./tmp/first".
上記では、カレントディレクトリ配下の’tmp’というディレクトリ配下に新たなディレクトリ’first’を作成している。 もし、カレントディレクトリ配下に’tmp’ディレクトリが存在しない場合には、ディレクトリの作成は失敗する。
ディレクトリを削除するには、CBL_DELETE_DIRを使う。
CALL CBL_DELETE_DIR { 定数-1 | データ名-1 }
000000 CALL "CBL_DELETE_DIR" USING "./tmp/first".
上記では、カレントディレクトリ配下の’tmp’というディレクトリ配下のディレクトリ’first’を削除している。 もし、カレントディレクトリ配下に’tmp’ディレクトリが存在しない場合、あるいは、’./tmp/first’配下にファイル等が 存在していた場合には、ディレクトリの削除は失敗する。
本文最後