2014-03-13 6 views
0

저는 COBOL을 VB.Net로 옮겨 쓰고 있지만 메인 프레임 또는 COBOL 컴파일러에는 액세스 할 수 없습니다. 필자가 옮겨 놓는 프로그램의 여러 곳에서 목표가 인덱스가없는 테이블 식별자 인 MOVE SPACES TO 문이 있습니다. 이것은 테이블의 모든 레코드를 지우거나 지정된 인덱스 변수가 가리키는 '현재'레코드를 지 웁니 까?[테이블]에 MOVE SPACES의 효과는 무엇입니까

표 선언 : 문

05 WS-EDI-HOLD-TABLE.      
    10 WS-EDI-HOLD-TBL OCCURS 1000 TIMES  
         INDEXED BY IDX1-EDI 
            IDX2-EDI. 
     15 WS-EDI-HOLD-DATA  PIC X(269). 

MOVE 공간이 :

MOVE SPACES TO WS-EDI-HOLD-TABLE 
+0

내가 기억하는 것으로부터 전체 테이블을 지울 것입니다. – Brandon

+0

"대상이 인덱스가없는 테이블 식별자 인 경우", 필자는 "오타"가 있어야하며 "인덱스가 있어야합니다"? –

+0

@BillWoodger 아니, 그건 오타가 아니야. 필자의 지적은 ** MOVE SPACES TO 문에 ** 인덱스가 지정되지 않았다는 것입니다. 훨씬 더 일반적인 상황은 ** 인덱스가 **있는 경우입니다.이 경우 명령문은 분명히 특정 행을 공백으로 설정합니다. 예를 들면 다음과 같습니다 :'MOVE SPACES TO WS-EDI-HOLD-TABLE (IDX1-EDI) ' –

답변

3

(여러 장소를 나타납니다) 당신과 SPACES에 전체 테이블을 설정 결국 :

MOVE SPACES TO WS-EDI-HOLD-TABLE 

이 테이블을 구성하는 모든 269000 바이트에 공백이 포함됩니다.

모든유형 문은 모든 하위 수준 데이터 항목을 암시 적으로 참조합니다. 이 유형의 참조는 PICTURE X 데이터로 가정합니다. 예를 들어 COMP-3 필드의 경우와 같이 하위 데이터 항목에 'X'유형 데이터와 호환되지 않는 명시 적 그림이있는 경우 실제 문제가 발생할 수 있습니다.