【COBOL学習|初心者向け】ベテランが教える!COBOLの文字列操作を劇的に楽にするTRIM関数の使い方

1. 導入:なぜ今、TRIM関数を使うべきなのか

COBOL開発の現場において、文字列の「余分な空白」を削除する処理は避けて通れません。かつてはINSPECT文を使って、先頭や末尾のスペースを一つずつ確認して削除するという、冗長でミスを誘発しやすいコードを書く必要がありました。しかし、現代のCOBOLでは「組込関数(Intrinsic Functions)」を活用することで、たった1行でスッキリと解決できます。可読性を高め、保守性を向上させるために、TRIM関数をマスターしましょう。

2. 基礎知識:組込関数とTRIMの役割

COBOLの組込関数は、プログラミング言語側であらかじめ用意されている便利な計算・処理ツールです。その中でもTRIM関数は、文字列の端にあるスペースを除去する機能を持ちます。

  • TRIM: 両端の空白を除去します。
  • TRIM(文字列 LEADING): 先頭(左側)の空白を除去します。
  • TRIM(文字列 TRAILING): 末尾(右側)の空白を除去します。

3. 実装・解決策

TRIM関数を使用する際は、FUNCTIONというキーワードを忘れないでください。また、結果を格納する受け側の変数(データ項目)の長さが、元の文字列より短いと切り捨てが発生するため、定義時には十分な長さを確保することが重要です。

4. サンプルプログラム

以下のコードは、スペース混じりの文字列から不要な空白を取り除く実用例です。

IDENTIFICATION DIVISION.
PROGRAM-ID. TRIM-SAMPLE.

DATA DIVISION.
WORKING-STORAGE SECTION.
01 WS-ORIGINAL PIC X(20) VALUE ” COBOL “.
01 WS-BOTH PIC X(20).
01 WS-LEFT PIC X(20).
01 WS-RIGHT PIC X(20).

PROCEDURE DIVISION.
> 両端の空白を削除
MOVE FUNCTION TRIM(WS-ORIGINAL) TO WS-BOTH.

> 先頭(左)の空白を削除
MOVE FUNCTION TRIM(WS-ORIGINAL LEADING) TO WS-LEFT.

> 末尾(右)の空白を削除
MOVE FUNCTION TRIM(WS-ORIGINAL TRAILING) TO WS-RIGHT.

DISPLAY “元データ: [” WS-ORIGINAL “]”
DISPLAY “両端削除: [” WS-BOTH “]”
DISPLAY “左側削除: [” WS-LEFT “]”
DISPLAY “右側削除: [” WS-RIGHT “]”

STOP RUN.

5. 応用・注意点:現場で役立つアドバイス

現場でよくあるミスは、「受け取り側の変数の長さ」に関するものです。例えば、元の文字列が20バイトで、結果を10バイトの変数にMOVEした場合、当然ながら後ろが切り捨てられます。また、TRIM関数は「スペース(X’40’)」を削除対象とします。もしNULL文字や他の特殊文字を削除したい場合は、TRIM関数ではなく、依然としてINSPECT文や専用の変換ロジックが必要になるケースがあることを覚えておいてください。基本はTRIM関数で完結させ、例外的なケースのみ複雑な処理を行うのが、モダンなCOBOL開発の鉄則です。

コメント

タイトルとURLをコピーしました