COBOLのMOVE文を完全ガイド!初心者でもわかるデータコピーと編集の基本
生徒
「先生、COBOLでデータをコピーしたり編集したりする方法ってあるんですか?」
先生
「はい、COBOLにはMOVE文という命令があって、それを使えば簡単にできます。」
生徒
「MOVE文ってどういうものなんですか?」
先生
「それでは、MOVE文の基本から一緒に学んでいきましょう!」
1. MOVE文とは?
COBOLのMOVE文は、変数や定数などのデータを別の場所にコピーするための命令です。プログラムの世界では「変数(へんすう)」という、値を入れておく箱のようなものがあります。MOVE文を使うことで、この箱から別の箱へ中身を移すことができます。
例えば「りんごを入れた箱から、別の箱にりんごを移す」イメージです。コンピュータの中では「文字」や「数字」を箱に入れて扱うので、MOVE文はとても基本的で重要な命令になります。
2. MOVE文の基本構文
MOVE文の書き方はとてもシンプルです。
MOVE 移したいデータ TO 移す先
「TO」は英語で「〜へ」という意味なので、「どこからどこへ移すのか」が直感的にわかりやすいのが特徴です。
3. 文字データをコピーする例
まずは文字(アルファベットや日本語など)をコピーしてみましょう。
IDENTIFICATION DIVISION.
PROGRAM-ID. SAMPLE1.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 NAME1 PIC X(10) VALUE "TARO".
01 NAME2 PIC X(10).
PROCEDURE DIVISION.
MOVE NAME1 TO NAME2.
DISPLAY "NAME2の中身は:" NAME2.
STOP RUN.
このプログラムを実行すると、NAME1に入っていた「TARO」がNAME2にコピーされます。
NAME2の中身は:TARO
このように、文字をそのままコピーすることができます。初心者にとってイメージしやすいのは「コピー&ペースト」と同じような感覚です。
4. 数字データをコピーする例
次に数字のコピーです。数字を扱うときは、PIC 9という型(データ型)を使います。
IDENTIFICATION DIVISION.
PROGRAM-ID. SAMPLE2.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 NUM1 PIC 9(3) VALUE 123.
01 NUM2 PIC 9(3).
PROCEDURE DIVISION.
MOVE NUM1 TO NUM2.
DISPLAY "NUM2の中身は:" NUM2.
STOP RUN.
NUM2の中身は:123
数字のコピーも文字と同じようにMOVE文で簡単に行えます。
5. データが短い場合や長い場合の挙動
MOVE文を使うときに注意が必要なのは、データの長さが違う場合です。例えば「5文字の箱に3文字のデータを入れる」とどうなるでしょうか。
01 SHORT-NAME PIC X(3) VALUE "ABC".
01 LONG-NAME PIC X(5).
MOVE SHORT-NAME TO LONG-NAME.
この場合、「ABC」とコピーされますが、残りの2文字分はスペース(空白)で埋められます。逆に長いデータを短い箱に入れようとすると、入りきらない部分は切り捨てられてしまいます。
この動きは初心者にとって大事なポイントで、実際のプログラムでもよくトラブルの原因になります。
6. 定数を直接MOVEする
変数だけでなく、直接「値」をMOVEすることもできます。これを「リテラル」と呼びます。
MOVE "HELLO" TO NAME1.
MOVE 999 TO NUM1.
このように書けば、すぐに固定の文字や数字を代入できます。手作業で「箱に中身を入れる」と考えるとイメージが湧きやすいです。
7. MOVE文を使った編集の基本
MOVE文には「編集機能」もあります。例えば「数値を3桁で表示する」といった場合に便利です。
01 NUM-VALUE PIC 9(3) VALUE 45.
01 EDITED-VALUE PIC ZZ9.
MOVE NUM-VALUE TO EDITED-VALUE.
DISPLAY "表示:" EDITED-VALUE.
表示: 45
Zは「数字がなければスペースで表示」という意味なので、45が右寄せで表示されます。これを使えば、帳票や画面出力のときに見やすい形に整えることができます。
8. まとめに向けた重要ポイント
- MOVE文はデータコピーの基本命令
- 文字・数字どちらにも使える
- 長さが違うとスペースや切り捨てが起こる
- 編集用のPICを使えば見やすい表示が可能
COBOLを学ぶ上で、MOVE文は必ず理解しておきたい基礎です。コピーの仕組みを理解することで、より実用的なプログラムに近づけます。