[차례]  [함수색인] Wel 도움말 문서 [이전]  [다음]
대분류: form 파일입출력함수
소분류: form과 자료 병합
listmerge() 작성일: 1999/10/22
수정일: 2002/07/05

1. 형식: result= listmerge(listfile) 2. 기능: 형식화된 자료(목록) 파일을 읽어서 폼과 병합(합성)하여 표준출력장치로 출력을 한다. 만일 개방된 폼이 없다면 출력을 하지 않으며 변수에 값만 대입한다. 대입되는 변수의 값은 모두 문자열로 저장된다. ( 폼의 내용중에서 잘못된 폼 매크로가 사용되었다면 에러 처리된다 ) ( setlocal(ON) 이면 전역 변수, setlocal(OFF) 이면 지역 변수에 대입됨 ) 3. 설명 (1) 인자 listfile은 문자열로 자료(목록) 파일명이며 경로명을 포함할 수 있다. (2) 개방된 폼이 없는 상태에서 result의 값은 대입된 변수의 개수이다. (3) 개방된 폼이 있는 상태에서 result의 값은 폼의 병합 횟수로 폼의 제어 명령이 없었다면 출력된 폼의 개수이고 폼 제어 명령이 있었다면 endrepstop명령의 반복 횟수가 포함된다. (4) result의 값이 -4(LIST_OPENERR)이면 자료(목록)파일이 없거나 개방할 수 없는 경우이다. 4. 자료(목록) 파일의 구조 (1) 주석(Comment): 공백을 제외한 최초 문자 또는 변수값의 분리문자가 ';'이나 '#'이면 그 문자로부터 그 줄 끝까지는 주석으로 처리된다. (2) 자료 필드의 구조 형식1) 변수명=["|']변수값["|'],...[자료처리명령어] 형식2) ["|']변수값["|'],...[자료처리명령어] 1) 대괄호([])는 그 안의 내용이 생략 될 수 있음을 의미한다. 2) 대괄호 안의 '"'와 '''사이의 '|'기호는 '또는'을 의미하며 '"'로 시작하면 '"'로 끝나야 하고 '''로 시작하면 '''로 끝나야 한다. 3) '...'은 형식의 처음부터 표시 전의 내용이 반복될 수 있음을 의미한다. 4) 등호기호(=)는 변수명의 분리기호로써 등호 외에 ':'을 사용할 수도 있다. 5) 쉼표기호(,)는 변수값의 분리기호로써 쉼표 외에 공백,'#',';','\n'를 사용할 수도 있다. 6) 변수값은 모두 문자열로 저장된다.(수치가 아니다) 7) 변수값에 공백이 있으면 인용부호(" 또는 ')를 생략할 수 없다. 8) 형식1)에서 변수명과 분리기호(=)에는 공백이 있을 수 없다. 9) 형식2)에서 변수값에 대한 변수명은 내부변수로써 "field"와 순번으로 변수명이 할당된다. 예를 들어 처음 변수값field1에 두번째 변수값field2에 이와 같이 순서 있게 대입되며 개행문자('\n')에서 강제로 !merge 기능을 수행한 후 다음 줄의 자료는 다시 field1부터 순서 있게 대입된다. 10) 자료처리명령어는 아래와 같은 종류가 있으며 폼을 제어하기 위한 것으로 폼이 없으면 이 명령들은 무시된다. -. !merge : 이 명령 이전까지의 자료만으로 폼을 병합하여 출력한다. 주로 폼에 반복부분이 있는 목록 형식의 출력에 사용한다. -. !exitrep : 폼의 반복부분을 탈출한다. 반복부분이 중첩되어 있을 때에는 제일 안쪽의 하나의 반복부분만 탈출한다. 11) 형식1)의 자료(목록) 파일의 예 +----------------------------------------------------------------+ | ;이것은 시험용 자료입니다. | | a=1, b="test", c=3; 변수 a와 b와 c가 확보되며 각각 값이 대입됨 | | d=10, !merge; 개방된 form이 있다면 출력을 한다. | +----------------------------------------------------------------+ 12) 형식2)의 자료(목록) 파일의 예 +----------------------------------------------------------------+ | 1, 2, 3; field1=1, field2=2, field3=3이 대입된 후 form이 출력됨| | "ab","cd","ef"; field1="ab", field2="cd", field3="ef" 대입된 후| | ; 개방된 form이 있다면 출력을 한다. | +----------------------------------------------------------------+ 4. 사용예 formname= helpdir ~ "temp/addr.fom"; listname= helpdir ~ "temp/addr.dat"; if(formopen(formname)!=FORM_NOERR) { print("form file open error!\n"); return; } if(listmerge(listname)==LIST_OPENERR) { print("list file open error!\n"); } formclose(); ------------------------------ [ 출력결과 ] ------------------------------ +---------------------------------------------------------+ | 123-456 123-4567(☎) | | | | 서울시 oooo구 oooo동 123번지 | | ooo | +---------------------------------------------------------+ +---------------------------------------------------------+ | 123-456 765-4321(☎) | | | | 서울시 oooo구 oooo동 123번지 | | Wel | +---------------------------------------------------------+

Wel Version 1.0
[차례]  [함수색인] [이전]  [다음]