読み込み中...

【COBOL】TRIM関数の使い方を解説!初心者向けの簡単な8つのステップ

初心者向けCOBOLのTRIM関数解説 COBOL
この記事は約13分で読めます。

【サイト内のコードはご自由に個人利用・商用利用いただけます】

この記事では、プログラムの基礎知識を前提に話を進めています。

説明のためのコードや、サンプルコードもありますので、もちろん初心者でも理解できるように表現してあります。

本記事のサンプルコードを活用して機能追加、目的を達成できるように作ってありますので、是非ご活用ください。

※この記事は、一般的にプロフェッショナルの指標とされる『実務経験10,000時間以上』を満たす現役のプログラマチームによって監修されています。

※Japanシーモアは、常に解説内容のわかりやすさや記事の品質に注力しております。不具合、分かりにくい説明や不適切な表現、動かないコードなど気になることがございましたら、記事の品質向上の為にお問い合わせフォームにてご共有いただけますと幸いです。
(送信された情報は、プライバシーポリシーのもと、厳正に取扱い、処分させていただきます。)

はじめに

プログラミングには多種多様な言語がありますが、長い歴史を持ち、今なお幅広い分野で活躍しているのがCOBOLです。

この記事では、COBOLの基礎から、特にTRIM関数の使い方に焦点を当て、初心者でも理解しやすいように解説していきます。

COBOLのTRIM関数をマスターすることで、あなたもプログラミングの世界でより広い視野を持つことができるようになるでしょう。

●COBOLとは

COBOL(Common Business Oriented Language)は、ビジネス用途に特化したプログラミング言語で、1959年に開発されました。

その読みやすい英語のような構文は、長期間にわたって多くの企業や政府機関で使用されています。

COBOLは特に金融機関や保険会社、政府機関など、大規模なデータ処理が必要な分野で重宝されてきました。

○COBOLの歴史と重要性

COBOLは、その誕生以来、ビジネス分野における大規模なデータ処理の要求に応えるために設計されました。

そのため、現在でも多くの既存システムがCOBOLで書かれており、これらのシステムは経済や社会の重要な部分を支えています。

COBOLは、時代の変遷と共に多くのアップデートを経て現在も用いられており、新しい技術との統合も進んでいます。

○COBOLプログラミングの基本

COBOLプログラミングを学ぶ上で重要なのは、その基本構造を理解することです。

COBOLは、DIVISION、SECTION、PARAGRAPHという階層構造でプログラムが組まれます。

これにより、大規模なプログラムでも管理しやすく、読みやすさが保たれています。

また、COBOLはデータ処理に特化しているため、データ定義に関する豊富な機能を備えています。

これらの基本を理解することが、COBOLにおける効率的なプログラミングの第一歩となります。

●TRIM関数とは

COBOLのTRIM関数は、文字列から不要な空白を取り除くために使用される非常に便利な機能です。

この関数は、データの整形や文字列操作において重要な役割を果たします。

例えば、データベースから取得した文字列が望まない空白で埋められている場合、TRIM関数を使ってこれらを取り除き、データの一貫性を保つことができます。

また、ユーザー入力の処理においても、不要な空白を除去することで、より正確なデータ処理を実現することが可能です。

○TRIM関数の役割と重要性

COBOLにおけるTRIM関数は、主に2つの重要な目的で使用されます。

一つは、文字列の先頭や末尾に存在する余分な空白を削除すること、もう一つは、文字列内の特定の文字を取り除くことです。

この機能は、特にファイル操作やデータベースとの連携を行う際に非常に役立ちます。

例えば、ユーザー名や住所などの入力データを処理する際に、予期しない空白が入力されていることがあります。

TRIM関数を使用することで、これらの問題を簡単に解決し、データの整合性を保つことができます。

○TRIM関数の基本的な構文

COBOLにおけるTRIM関数の基本的な構文は次のようになります。

STRING TRIM(ソース文字列) INTO 目的変数

この例では、ソース文字列から不要な空白を取り除き、それを目的変数に格納します。

また、TRIM関数には、文字列の左側(LEFT)、右側(RIGHT)、または両側(BOTH)から空白を削除するオプションがあります。

これにより、より柔軟な文字列処理が可能になります。

たとえば、次のサンプルコードは、文字列の両端の空白を取り除く基本的な使い方を表しています。

IDENTIFICATION DIVISION.
PROGRAM-ID. TrimExample.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 WS-ORIGINAL-STRING PIC X(20) VALUE "   Hello World   ".
01 WS-TRIMMED-STRING PIC X(20).

PROCEDURE DIVISION.
    MOVE FUNCTION TRIM(WS-ORIGINAL-STRING) TO WS-TRIMMED-STRING.
    DISPLAY WS-TRIMMED-STRING.
STOP RUN.

このコードでは、WS-ORIGINAL-STRING に格納された文字列 ” Hello World ” の両端の空白を取り除き、結果を WS-TRIMMED-STRING に格納しています。

この処理により、余分な空白を含まない文字列 “Hello World” が得られます。

このように、TRIM関数はCOBOLにおける文字列操作において重要なツールとなります。

●TRIM関数の基本的な使い方

COBOLのTRIM関数を使用する際の基本的な方法は、文字列の不要な空白を取り除くことです。

これには、文字列の先頭や末尾、あるいは両方から空白を削除するという方法があります。

この処理は、データ整形やフォーマットの調整に非常に役立ちます。

特に、ユーザーからの入力を扱う場合や、外部からのデータを処理する際に有用です。

TRIM関数を使用することで、予期せぬエラーやデータの不整合を避け、より安定したプログラムを実現することが可能です。

○サンプルコード1:文字列から余分な空白を削除する

例として、次のサンプルコードでは文字列から余分な空白を削除する基本的な使い方を表しています。

IDENTIFICATION DIVISION.
PROGRAM-ID. TrimDemo.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 ORIGINAL-STRING PIC X(30) VALUE "   Sample Text   ".
01 TRIMMED-STRING PIC X(30).

PROCEDURE DIVISION.
    MOVE FUNCTION TRIM(ORIGINAL-STRING) TO TRIMMED-STRING.
    DISPLAY "Original: '" ORIGINAL-STRING "'".
    DISPLAY "Trimmed: '" TRIMMED-STRING "'".
STOP RUN.

このコードは、ORIGINAL-STRING に格納された ” Sample Text ” から前後の空白を取り除き、その結果を TRIMMED-STRING に格納しています。

実行すると、ORIGINAL-STRING は空白を含むまま表示されますが、TRIMMED-STRING では前後の空白が取り除かれた “Sample Text” が表示されます。

このようにTRIM関数を用いることで、文字列から不要な空白を効率的に削除することができます。

○サンプルコード2:左側の空白のみを削除する

次に、文字列の左側にある空白のみを削除する方法を紹介します。

下記のサンプルコードでは、左側の空白を取り除く方法を実演しています。

IDENTIFICATION DIVISION.
PROGRAM-ID. LeftTrimDemo.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 ORIGINAL-STRING PIC X(30) VALUE "   Sample Text".
01 LEFT-TRIMMED-STRING PIC X(30).

PROCEDURE DIVISION.
    MOVE FUNCTION TRIM(ORIGINAL-STRING LEADING) TO LEFT-TRIMMED-STRING.
    DISPLAY "Original: '" ORIGINAL-STRING "'".
    DISPLAY "Left Trimmed: '" LEFT-TRIMMED-STRING "'".
STOP RUN.

このコードでは、FUNCTION TRIMLEADING オプションを追加することで、ORIGINAL-STRING の左側にある空白のみを削除しています。

結果として、LEFT-TRIMMED-STRING には “Sample Text” が格納され、左側の空白が取り除かれた状態で表示されます。

このようにして、TRIM関数は柔軟な文字列処理を提供し、COBOLプログラミングにおいて重要な役割を果たします。

●TRIM関数の応用例

COBOLのTRIM関数は、基本的な使い方を超えて様々な応用が可能です。

データの整形、フォーマット調整、さらには複数の文字列の結合時にも活用できます。

これらの応用例を理解することで、COBOLプログラミングの幅が広がり、より複雑なデータ操作が可能になります。

○サンプルコード3:データの整形にTRIM関数を使用する

データの整形にTRIM関数を使用する一例として、次のサンプルコードを見てみましょう。

IDENTIFICATION DIVISION.
PROGRAM-ID. DataFormatTrim.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 WS-UNFORMATTED-DATA PIC X(25) VALUE "Name: John   Age: 30".
01 WS-FORMATTED-DATA PIC X(25).

PROCEDURE DIVISION.
    MOVE FUNCTION TRIM(WS-UNFORMATTED-DATA) TO WS-FORMATTED-DATA.
    DISPLAY WS-FORMATTED-DATA.
STOP RUN.

このコードでは、不要な空白を含むデータ “Name: John Age: 30” を整形しています。

TRIM関数を使用することで、余計な空白を取り除き、より整った形のデータ “Name: John Age: 30” を得ることができます。

これにより、データの読みやすさが向上し、後続の処理が容易になります。

○サンプルコード4:複数の文字列を組み合わせる際のTRIM活用

複数の文字列を組み合わせる際にも、TRIM関数は非常に便利です。

下記のサンプルコードでは、TRIM関数を使用して複数の文字列を適切に組み合わせる方法を表しています。

IDENTIFICATION DIVISION.
PROGRAM-ID. CombineTrim.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 WS-FIRST-STRING PIC X(15) VALUE "Hello".
01 WS-SECOND-STRING PIC X(15) VALUE "   World".
01 WS-COMBINED-STRING PIC X(30).

PROCEDURE DIVISION.
    MOVE FUNCTION TRIM(WS-FIRST-STRING) TO WS-COMBINED-STRING.
    STRING WS-COMBINED-STRING DELIMITED BY SIZE 
           " " 
           FUNCTION TRIM(WS-SECOND-STRING) DELIMITED BY SIZE 
           INTO WS-COMBINED-STRING.
    DISPLAY WS-COMBINED-STRING.
STOP RUN.

このコードでは、”Hello” と ” World” という二つの文字列を組み合わせています。

TRIM関数を使用することで、不要な空白を取り除きつつ、これらの文字列を適切に結合することができます。

結果として、”Hello World” という一つの整った文字列が得られます。

このようにTRIM関数を活用することで、複数の文字列を効果的に処理し、望む形のデータを生成することが可能です。

●COBOLプログラミングにおける注意点

COBOLプログラミングを行う上で、特に文字列処理に関する注意が重要です。

文字列の取り扱い方がプログラムの正確性や効率に大きく影響を及ぼすため、基本的な原則を理解し適切に適用する必要があります。

○文字列処理の注意点

文字列の長さやフォーマットには特に注意を払う必要があります。

COBOLでは固定長の文字列フィールドが一般的に使用されるため、文字列がフィールドサイズを超えないよう管理することが大切です。

また、文字列の結合、分割、変換を行う際は、生成される文字列が意図した内容になっているかを確認することが重要です。

○TRIM関数使用時のコモンエラーと対処法

TRIM関数の使用に際しては、いくつかの一般的なエラーが発生し得ます。

その一つが、空白の取り扱いに関する誤解です。

TRIM関数は文字列の先頭や末尾の空白を削除しますが、文字列中央の空白は削除されません。

このため、TRIM関数を使用する際には、空白の削除範囲を正しく理解し、適切に適用することが重要です。

また、文字列の長さが変わることを意識し、後続の処理で問題が生じないようにする必要があります。

特に、特定の文字を削除する際には、削除する文字を正確に指定し、誤った文字が削除されないようにすることが重要です。

これらの点に注意を払いながらTRIM関数を使用することで、文字列処理をより効果的かつ安全に行うことができます。

●TRIM関数のカスタマイズ方法

COBOLにおけるTRIM関数は、その基本的な機能をカスタマイズして、特定の用途に合わせることが可能です。

例えば、標準的な空白文字以外の特定の文字を削除するように調整することができます。

これにより、TRIM関数はより柔軟に文字列データを処理するための強力なツールとなります。

○サンプルコード5:TRIM関数の挙動をカスタマイズする

TRIM関数の挙動をカスタマイズする方法の一例をサンプルコードを交えて紹介します。

IDENTIFICATION DIVISION.
PROGRAM-ID. CustomTrimDemo.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 WS-ORIGINAL-STRING PIC X(20) VALUE "###Example String###".
01 WS-TRIMMED-STRING PIC X(20).

PROCEDURE DIVISION.
    MOVE FUNCTION TRIM(WS-ORIGINAL-STRING BOTH '#') TO WS-TRIMMED-STRING.
    DISPLAY "Trimmed String: " WS-TRIMMED-STRING.
STOP RUN.

このコードでは、TRIM関数を使用して、文字列の両端にあるシャープ記号(#)を削除しています。

このように特定の文字を指定することで、標準の空白文字以外も効果的に削除できます。

○サンプルコード6:特定の文字をTRIMする方法

特定の文字をTRIMする方法をサンプルコードを交えて紹介します。

IDENTIFICATION DIVISION.
PROGRAM-ID. SpecificCharTrim.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 WS-ORIGINAL-STRING PIC X(25) VALUE "***Hello World***".
01 WS-TRIMMED-STRING PIC X(25).

PROCEDURE DIVISION.
    MOVE FUNCTION TRIM(WS-ORIGINAL-STRING BOTH '*') TO WS-TRIMMED-STRING.
    DISPLAY "Trimmed String: " WS-TRIMMED-STRING.
STOP RUN.

このコードでは、アスタリスク(*)という特定の文字が文字列の両端にある場合に、それらを削除しています。

FUNCTION TRIMを使って特定の文字を指定することで、様々な文字列の整形が可能になります。

まとめ

この記事を通じて、COBOLにおけるTRIM関数の基本的な使い方から応用例、さらにはカスタマイズ方法までを詳細に解説しました。

COBOLは現代のプログラミング環境においても重要な役割を果たしており、その中核をなすTRIM関数の理解はCOBOLプログラマーにとって不可欠です。

COBOLプログラミングの技術を身につけることは、現代の多くのビジネスシステムにおいて依然として価値があります。

TRIM関数を含むCOBOLの各種機能を理解し、効果的に利用することで、より高度なプログラミング技術を習得することが可能です。

この記事がCOBOLプログラミングの理解を深め、実践的なスキルを磨く一助となれば幸いです。