다시 답변드립니다. "문자열"에 대해 언급하면서도 데이터의 일부인 "필드"가 무엇인지에 대해 이야기하고 있다고 생각합니다.
01 a-piece-of-data.
05 first-two-bytes-of-data PIC XX.
05 third-byte-of-data PIC X.
05 fourth-byte-of-data PIC X.
a-piece-of-data는 4 바이트 길이의 "그룹 항목"입니다. "하위"정의를 사용하면 4 바이트 내에서 개별 바이트에 액세스 할 수 있습니다.
01 a-piece-of-data PIC X(4).
01 FILLER REDEFINES a-piece-of-data.
05 first-two-bytes-of-data PIC XX.
05 third-byte-of-data PIC X.
05 fourth-byte-of-data PIC X.
은 그것은 "첨자"을 수행 할 수 있습니다 : 이제
01 a-piece-of-data.
05 FILLER OCCURS 4 TIMES.
10 a-byte-in-the-piece-of-data PIC X.
, 데이터의
a-byte-in-the-piece-of-data (3)
참조 세 번째 바이트
그것은이 방법을 수행 할 수 있습니다.
그림과 같이 리터럴을 사용하거나 데이터 이름 (일반적인 방식으로 사용자가 정의한 이름과 저장소, 수치가되어야하며 이진수가 가장 좋음) 또는 인덱스 이름 (INDEXED BY 여기서 이름은 정의하지만 컴파일러는 저장소를 정의합니다.
NealB에 표시된 것처럼 참조 수정을 통해 수행 할 수도 있습니다.
나를 위해, 선택은 종종 "다음 사람에게 가장 명확한가?"로 내려옵니다. 과 동일
01 WHAREHOUSE-REF.
05 WHAREHOUSE-CODE PIC XX.
88 WHAREHOUSE-HAS-LIFT VALUE "LN" "CV".
05 WHAREHOUSE-FLOOR PIC X.
88 WHAREHOUSE-UPPER-FLOOR VALUE "1" "2".
05 WHAREHOUSE-BAY PIC X.
01 W-LIFT-USAGE PIC X.
88 W-LIFT-USAGE-NONE VALUE ZERO.
IF WHAREHOUSE-HAS-LIFT
AND WHAREHOUSE-UPPER-FLOOR
MOVE WHAREHOUSE-FLOOR TO W-LIFT-USAGE
ELSE
SET W-LIFT-USAGE-NONE TO TRUE
END-IF
PERFORM CALC-ROBOT-TIME-TO-BAY
(또는 그 것이다? 당신은 항상 수동의 모든 시간을 확인할 수) :
01 VAR1 PIC X(4).
01 VAR2 PIC X.
IF VAR1 (1:2) = "LN" OR "CV"
AND VAR1 (3:1) = "1" OR "2"
MOVE VAR1 (3:1) TO VAR2 (1:1)
ELSE
MOVE ZERO TO VAR2 (1:1)
END-IF
PERFORM CALC-ROUTINE THROUGH CALC-ROUTINE-EXIT
PS합니다. VAR2에 대해 알고 있지만, 경험상 참조 편집을 사용하는 경험이없는 사람들이 얼마나 많은 코드를 작성 했는가? 또한 VAR2 (1 :)가 표시되는 반면 일반 VAR2 만 있으면됩니다. 예, 선택한 이름은 참조 수정 및 경험이없는 사람과 비슷한 것으로 보이는 이름 유형입니다.
은 절차 부서 및 데이터 부서에서 관련 코드를 보여줍니다. – RBarryYoung
당신이 특정 인물을 말할 때, 당신은 인물의 위치 또는 일치하는 인물을 의미합니까? 즉, 문자열이 "work"이면 "w"가 1을 반환하거나 1을 "w"를 반환하겠습니까? –