FileIO 사용하기
본 장에서는 생성된 FileIO 모듈을 사용하여 EMB Designer에서 파일을 처리하는 방법과 과정에 대해 설명한다.
파일처리는 다음과 같이 2가지 방법으로 FileIO 모듈을 사용할 수 있다.
-
단 건 파일처리
-
여러 건 파일처리
|
본 장에서는 파일을 처리하는 방법 별로 EMB 모듈에서 FileIO를 사용하는 방법을 설명한다. |
1. 단 건 파일처리
단 건 파일처리는 애플리케이션 프로그램에서 파일 내용을 한 번만 read, write, append 하는 것을 의미한다.
다음은 EMB 모듈에 FileIO 리소스를 사용하여 단 건 파일처리를 하는 절차의 예이다.
-
내비게이터 또는 리소스 풀에서 EMB 모듈에 삽입할 FileIO 모듈을 찾아서 EMB Designer에 원하는 위치에 배치한다. 단, 프로프레임 내비게이터와 리소스 풀에서 끌어다 놓으면 운영 영역 리소스를 참조하게 되고, 작업영역 내비게이터에서 끌어다 놓게 되면 작업영역 리소스를 참조하게 된다.
EMB 모듈에 FileIO 리소스 추가 -
FileIO 모듈을 드래그 앤드 드롭하면 다음과 같이 FileIO 호출 설정 대화상자가 나타난다.
FileIO 호출 설정대화상자에서는 FileIO 모듈이 기본적으로 동작하기 위해 각 항목을 설정한다.
항목 설명 Count
FileIO가 한 번에 읽어올 파일의 row 개수이다.
또는 파일 포인터를 한 번에 증가시킬 크기를 의미하기도 한다.
File Exec Type
파일에 접근할 때 동작할 모드를 설정한다.
-
read : 파일로부터 데이터를 읽는다.
-
write : 파일에 데이터를 새로 쓴다. 파일에 이미 데이터가 존재하면 겹쳐 쓴다.
-
append : 파일에 데이터를 추가한다.
예를 들면 'Count'를 ‘3’으로 입력하면 FileIO가 파일을 한번에 3 row씩 읽어온다.
FileIO 리소스를 서비스 모듈, 비즈니스 모듈, 배치 모듈을 대상으로 EMB 모듈에 추가한 경우 FileIO의 구조체가 컨텍스트 변수에 함께 선언이 되는데 이때 설정된 Count 크기만큼 구조체의 배열크기를 직접 수정해야 한다.
-
-
'Count'와 'File Exec Type'를 설정한 후 [확인] 버튼을 클릭하면 다음과 같이 Information 창이 나타난다. 이 창은 2번에서 설정된 Count를 변경할 수 있다는 내용을 알려주기 위해 나타난다. 이 창에서 [OK] 버튼을 클릭하면 FileIO 호출 설정이 완료된다.
Information 창 -
FileIO 호출 설정 대화상자에서 설정한 정보를 확인한다. 확인하는 방법은 EMB Designer에서 FileIO 모듈을 선택한 후 [특성] 뷰의 'File exec type', 'Count', 'File name' 속성 정보를 확인한다.
설정된 FileIO 정보 확인'File exec type', 'Count', 'File name' 속성은 수정이 가능한 항목들이다.
‘File name’은 [특성] 뷰에서 Read/Write할 파일의 파일명을 설정한다. 만약 파일명을 설정하지 않으면 EMB 모듈을 컴파일할 때 에러가 발생한다. 단순하게 파일명만 설정하는 것이 아니라 대상 파일이 존재하는 위치까지 포함하여 설정해야 한다. 여기서 대상 파일이 존재하는 위치는 상대 경로가 아닌 절대 경로로 설정해야 한다.
다음은 특성 뷰에서 ‘File name’ 속성을 설정하는 예이다.
-
File name를 입력할 영역을 마우스로 선택하면 […] 버튼이 나타난다.
[특성] - File name 설정 -
[…] 버튼을 클릭하면 다음과 같이 파일명 정의 대화상자가 나타난다.
파일명 정의 대화상자 예파일명 정의 대화상자에서 설정 값(대상 파일의 경로와 파일명 포함)을 직접 입력하거나 특정 변수목록에서 설정된 대상 변수를 더블클릭하여 설정한다.
FileIO가 기본적으로 동작하기 위해서는 'File exec type', 'Count', 'File name' 항목은 반드시 설정되어 있어야 한다. 설정하지 않으면 EMB 모듈을 컴파일할 때 에러가 발생한다. 따라서 위에서 언급한 2, 3번의 내용을 반드시 확인하여 'File exec type', 'Count', 'File name' 속성 정보를 설정한다.
-
-
컴파일 및 Dlupdate
위와 같이 생성된 EMB 모듈을 저장한 후 해당 모듈에 대하여 컴파일 및 Dlupdate 과정을 수행한다. 컴파일 및 Dlupdate 과정은 본 안내서의 컴파일, Dlupdate를 참고한다.
2. 여러 건 파일처리
여러 건 파일처리는 애플리케이션 프로그램에서 파일 내용을 한 번만 접근하는 것이 아니라 계속적으로 대상 파일을 반복적으로 접근하면서 업무를 수행하는 것을 뜻한다. 대상 파일에 반복적으로 접근하는 방법은 스튜디오에 내장된 FileIO의 Loop 모듈을 사용하는 것이다. 이 모듈은 FileIO Loop 모듈이라고 하며 FileIO Loop에 생성된 FileIO 모듈을 삽입하여 반복적인 파일처리를 수행한다.
다음은 EMB 모듈에 FileIO 모듈을 삽입하여 여러 건의 파일을 처리하는 절차이다.
-
여러 건의 파일을 처리할 FileIO 모듈 앞에 FileIO Loop 모듈을 추가한다.
FileIO 모듈에 FileIO Loop 모듈 추가위 그림과 같이 FileIO Loop 모듈을 추가하면 while(1){…} 형태로 기본 소스가 자동으로 생성된다.
-
추가된 FileIO Loop 모듈을 선택한 후 여러 건의 파일을 처리하기 위한 선후처리 조건을 설정한다. 즉, while 문의 괄호 안에 원하는 반복 조건을 입력한다.
FileIO Loop 모듈의 선후처리 설정 -
FileIO Loop 모듈의 선후처리가 설정되면 [특성] 뷰의 'Open Node Id'에 추가된 FileIO Loop 모듈(FileIO Loop 0)이 표시된다.
FileIO Loop 모듈의 선후처리 설정'Open Node Id'는 다음과 같은 속성을 가지고 있다.
항목 설명 Self Open
File Io Call 설정 대화상자에서 입력한 Count 수만큼 한번에 파일을 처리할 때 사용한다.
FileIO Loop
FileIO Loop 모듈을 사용하여 반복 처리를 하면 "FileIO의 Count 수 * n 번"으로 처리할 수 있다. 이 모듈을 선택하면 반복문 전에 대상 파일을 열고 반복문 뒤에 대상 파일을 닫아 사용한다.