2017-09-19 10 views
1

"설명"DB2 테이블의 var char 필드와 "prefix"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). 

나는 다음과 같은 코드를 시도했습니다 : 이들에 대한

실무 저장 값은

WS-PFIX-TEXT 100 개 문자로 고정되어 있기 때문에이 작동하지 않습니다
INSPECT WS-DESC-TEXT(1:WS-PFIX-LEN) 
REPLACING WS-PFIX-TEXT TO " " 

따라서 비교에 뒤 공백이 모두 포함되므로 일치 항목이 없습니다. 또한 시도 :

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

그러나 컴파일러는 REPLACING 줄에서 부분 문자열을 사용하는 것을 좋아하지 않습니다.

누구든지 작동하는데 사용할 수있는 대안을 알고 있습니까? 나는 인터넷을 수세기 동안 샅샅이 뒤졌고 아무것도 찾을 수없는 것처럼 보였다.

감사합니다.

답변

1

하위 문자열이 작동하더라도 문제가 있습니다. 텍스트를 대체 할 텍스트와 길이가 일치하는지 검사 할 텍스트입니다. 말했다되고 그건

, 당신은 항상 논리적으로 그것을 할 수 : 눈치

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 

다른 것은 당신의 검사 문이 작업을 한 경우에도 단일 여러 문자를 대체 때문에 WS-DESC-LEN 잘못 될 것입니다 공간.

원하는대로해야합니다. 나는 그것을 테스트 할 수있는 방법이 없기 때문에 나의 카운트가 약간 벗어날 수도있다. 이것은 기본적으로 당신이하고 싶은 것입니다.

+0

대답에 대한 건배는 논리적으로 끝내기 만하면됩니다. 접두어와 일치하는 경우 설명의 시작 부분을 공백으로 바꿔야했습니다. 나는 실제로하고 싶은 것을 맞추기 위해 비슷한 것을하는 프로그램을 실제로 조정하고있다. 그리고 여러개의 공백을 없애기위한 별도의 섹션을 포함하고, 길이가 따라갈 때마다 업데이트한다. 도움을 많이 주셔서 감사합니다! – mmackenzie93