2017-09-19 4 views
1
私は現在カーソルが「説明」DB2テーブルのVARチャーフィールドに読み込みするプログラムを作成しようとしています

と「接頭辞」を読み出すカーソルを削除するには、複数のプレフィックスのためのテキストフィールドをスキャンしようとするとVAR charフィールドを別のテーブルから取得します。私は、プレフィックスのいずれかが記述の始めに存在するかどうかを確認するためにそれぞれの記述をチェックし、そうであればそれを単一のスペースで置き換える必要があります。これらのための彼らに

作業用記憶値は次のとおりです。

03 WS-PFIX. 
    49 WS-PFIX-LEN PIC S9(4) COMP. 
    49 WS-PFIX-TEXT 

03 WS-DESC. 
     49 WS-DESC-LEN PIC S9(4) COMP. 
     49 WS-DESC-TEXT PIC X(100). 

私は、次のコードを試してみた:

INSPECT WS-DESC-TEXT(1:WS-PFIX-LEN) 
REPLACING WS-PFIX-TEXT TO " " 

WS-PFIX-TEXTが100文字に固定されているので、これは動作しません。比較の末尾の空白がすべて含まれるため、一致しません。私もこれを試しました:

INSPECT WS-DESC-TEXT(1:WS-PFIX-LEN) 
REPLACING WS-PFIX-TEXT(1:WS-PFIX-LEN) TO " " 

しかし、コンパイラは、置換行の部分文字列の使用が嫌いです。

これに使用できる任意の代替案を知っている人はいますか?私は年齢のためにインターネットを洗ってきたし、何かを見つけることができない。

ありがとうございます。

答えて

1

サブストリングが機能していても問題があります。あなたがそれを置き換えようとしているテキストに(長さで)多く一致するか検査するテキスト。私が気づいた他の事はあなたのステートメントを検査し、作業をした場合でも、あなたが単一で複数の文字を置換するので、WS-DESC-LENは間違っているだろうということです

03 WS-PFIX. 
    49 WS-PFIX-LEN PIC S9(4) COMP. 
    49 WS-PFIX-TEXT PIC X(100). 

03 WS-DESC. 
    49 WS-DESC-LEN PIC S9(4) COMP. 
    49 WS-DESC-TEXT PIC X(100). 

03 WS-TEMP. 
    49 WS-TEMP-LEN PIC S9(4) COMP. 
    49 WS-TEMP-TEXT PIC X(100). 

MOVE 0  TO WS-TEMP-LEN 
MOVE SPACES TO WS-TEMP-TEXT 

IF WS-DESC-TEXT(1:WS-PFIX-LEN) = WS-PFIX-TEXT(1:WS-PFIX-LEN) 
    ADD 1 TO WS-TEMP-LEN 
    MOVE SPACE TO WS-TEMP-TEXT(1:1) 
    ADD 1 TO WS-TEMP-LEN 
    MOVE WS-DESC-TEXT(WS-PFIX-LEN + 1:) TO WS-TEMP-TEXT(2:) 

    COMPUTE 
     WS-TEMP-LEN = (WS-DESC-LEN - WS-PFIX-LEN) + 1 
    END-COMPUTE 
ELSE 
    MOVE WS-DESC-TEXT TO WS-TEMP-TEXT 
    MOVE WS-DESC-LEN TO WS-TEMP-LEN 
END-IF 

MOVE SPACES  TO WS-DESC-TEXT 
MOVE 0   TO WS-DESC-LEN 

MOVE WS-TEMP-TEXT TO WS-DESC-TEXT 
MOVE WS-TEMP-LEN TO WS-DESC-LEN 

:言われて、あなたは常に論理的にそれを行うことができることを

スペース。

これは、必要な操作を行う必要があります。私はそれをテストする手段がないので、私のカウントは少しオフかもしれません。これは基本的にあなたがしたいことです。

+0

答えのための乾杯は、論理的に最後に論理的にやっていくだけで、プレフィックスと一致する場合は説明の先頭をスペースで置き換えていました。私は実際にやっていることに似た何かをするプログラムを調整しています。それは複数のスペースを取り除くための別のセクションを含み、それが進むにつれて長さを更新します。 ありがとうございました! – mmackenzie93