파일 I/O에 대한 set 고려사항
데이터베이스를 포함하지 않는 파일 I/O의 컨텍스트에서 EGL set 문은 레코드 변수에 있는 모든 필드를 재설정할 수 있으며, IndexRecord 스테레오타입의 경우에는 파일 포인터의 위치를 변경할 수 있습니다.
CSVRecord 스테레오타입에 대해 이 명령문을 사용하는 경우에는 set empty 형식만 허용됩니다.
구문

- recordVariable
- set 문이 작동할 색인화, 상대 또는 직렬 레코드 변수의 이름입니다.
- value
- 이는 실행할 set 조작의 유형입니다. 가능한 값은 다음과 같습니다.
- empty
- 여기에서 set 문은 레코드에 포함된 모든 레코드 변수를 통해 반복적으로 작업하거나 구조화 레코드의 경우 구조의 최하위 레벨까지 아래로 작업합니다. 개별 필드는 해당 유형에 따라 설정됩니다. 해당 값에 대한 세부사항은 데이터 초기화의 내용을 참조하십시오.
- initial
- 레코드 변수는 각 필드의 초기값을 지정할 수 있습니다. initial 수정자는 해당 필드의 값을 레코드 정의에 지정된 값으로 재설정합니다. 레코드 정의가 초기값을 지정하지 않는 경우 initial 수정자의 효과는 empty 수정자의 효과와 동일합니다.
- position
- 이 키워드는 IndexedRecord 스테레오타입에 대해서만 사용 가능합니다.
- IndexedRecord 스테레오타입의 경우 keyItem 특성에 지정된 필드의 값은 레코드 포인터의 위치를 판별합니다. 그런 다음 get next 또는 get previous 문을 사용하여 파일에 액세스할 수 있습니다. 키 필드가 0으로 설정되면 파일 포인터는 첫 번째 레코드 앞에 위치합니다. 키 필드가 16진수 FF로 채워지면 파일 포인터는 마지막 레코드 다음에 위치합니다.
예제
다음 예제는 색인화 레코드에 대해 사용된 set 문을 보여줍니다.
package com.companyb.customer;
Record IndexedRecordExample type IndexedRecord {
fileName = "C:\\temp\\indexfile.txt",
keyItem = indKey
}
10 indKey INT;
15 indKeyAsHex HEX(8);
10 indTitle CHAR(30);
10 indAuthor CHAR(30);
end
program readall
myIndexedRecord IndexedRecordExample;
Function main()
// sets indKey to 0, other fields blank
set myIndexedRecord empty;
myIndexedRecord.indKeyAsHex = x"FFFFFFFF";
// moves to end of file
set myIndexedRecord position;
...
end // main()
end // program