Cobol에 은행 계좌 번호를 기입해야합니다. 보고서 사용자는 모든 계좌 번호를 원하지만 마지막 4 개의 X를 원합니다. 내 데이터 구조는 다음과 같습니다.Cobol에서 문자열을 쓰고 모든 X가있는 accout 번호의 처음 6 자리를 가리고 싶습니까?
데이터 구조 :
01 Account.
05 acct pic x(10) value spaces.
인쇄 아웃 :
01 Account.
05 six-digits pic x(06) value 'XXXXXX'.
05 four-digits pic x(04) value spaces.
MOVE new-account-value TO Accout. -- this over writes the X's and screws up my printout
WRITE E-Record FROM Account.
은 무엇 간단한 작업을 수행하는 쉬운 방법이 될 것입니다 :
XXXXXX5678
나는 다음과 같은 시도? 코볼은 항상 약간의 결함이있는 것 같습니다.
새 코드 : (여전히 작동하지 않습니다.) 이유가 무엇일까요? 이것은 예제와 같습니다. 그리고 값이 모두 X를 상수로 유지한다는 것을 기억한다면 이것은 잘못된 것이라고 생각합니다.
02 BANK-INFORMATIONE.
04 H5-ROUTE.
10 ROUTE-UNUSED PIC X(09) VALUE ALL 'X'.
10 ROUTE-USED PIC X(04) VALUE SPACES.
04 FILLER PIC XX VALUE SPACES.
04 H5-ACCTE.
10 ACCT-UNUSED PIC X(06) VALUE ALL 'X'.
10 ACCT-USED PIC X(04) VALUE SPACES.
ROUTE-UNUSED 지원은 9 바이트입니까? 절차 단원 코드는 무엇을 작성 했습니까? –
예, 사용되지 않은 바이트는 9 바이트가됩니다. 프로 시저 부분을 참조 할 때 모든 코드를 볼 필요가 있습니다. X를 route-unused로 이동하면 쓰기 전에는 작동하지만 Value All은 상수와 비슷하고 다시 작성할 필요가 없다고 생각합니다. –
COBOL은 상수를 변경하지 않으면 상수 만 사용합니다. INITIALIZE를 사용했거나 BANK-INFORMATIONE을 어떤 값으로 설정 했습니까? 작동하지 않을 때 실제로 어떤 출력을 얻고 있습니까? 6 자리 뒤에 원하는 4 자리 숫자가 오는가? –