DATA_CRITERIA
정의는 객체 유형을 파일이나 디렉토리에 지정하는데 사용되는 기준을 정의합니다.
객체 유형 지정에 대해 표 13-3에 있는 기준을 사용할 수 있습니다.
표 13-3 DATA_CRITERIA 기준 및 설명
기준 |
설명 |
---|---|
파일 이름 | |
파일 위치 | |
파일 내용 | |
파일 모드 | |
객체가 링크되는 파일에 따라 유형이 지정됩니다. |
한 데이터 유형에 대해 두 개 이상의 기준을 사용할 수 있습니다. 그러나 한 데이터 유형에 NAME_PATTERN과 PATH_PATTERN 기준을 같이 사용할 수는 없습니다.
이름 지정 요구사항을 지정하려면 NAME_PATTERN 필드를 사용하십시오. 필드 값은 다음과 같은 와일드카드를 포함할 수 있습니다.
?-단일 문자에 해당합니다.
[cc...]-대괄호로 묶은 모든 문자(c)에 해당합니다.
[c-c]-c에서 c까지의 모든 문자에 해당합니다.
다음과 같은 데이터 유형 정의는 파일 이름에 기초한 데이터 유형을 작성합니다. 파일 이름은 QS로 시작하여 .doc로 끝나야 합니다.
DATA_ATTRIBUTES QS_Doc { DESCRIPTION 이 파일에는 QS 프로젝트에 대한 문서가 \ 포함되어 있습니다. ICON Word_Doc ACTIONS Open } DATA_CRITERIA QS_Doc_Criteria { NAME_PATTERN QS*.doc DATA_ATTRIBUTES_NAME QS_Doc }
다음과 같은 정의는 Demo_n이라는 디렉토리에 대한 데이터 유형을 작성하며, n은 0-9 사이의 수입니다.
DATA_ATTRIBUTES Demo_directory { DESCRIPTION 디렉토리입니다. 디렉토리를 열려면 두 번 누르십시오. ICON Demo ACTIONS OpenInPlace,OpenNewView } DATA_CRITERIA Demo_directory_criteria { NAME_PATTERN Demo_[0-9] MODE d DATA_ATTRIBUTES_NAME Demo_directory }
경로를 지정하려면 PATH_PATTERN 필드를 사용하십시오. NAME_PATTERN에서와 같이 와일드카드 문자를 사용할 수 있습니다.
예를 들어, 다음과 같은 데이터 유형은 경로에 기초한 기준을 사용합니다.
DATA_ATTRIBUTES Project_Graphics { DESCRIPTION QS 프로젝트에 대한 그래픽 파일입니다. 그래픽을 보려면 \ 아이콘을 두 번 누르십시오. ICON QSgraphics } DATA_CRITERIA Project_Graphics_Criteria { DATA_ATTRIBUTES_NAME Project_Graphics PATH_PATTERN */projects/QS/graphics/* }
파일 이름과 파일 위치 모두에 기초한 데이터 유형을 작성하려면 PATH_PATTERN 값에 파일 이름을 포함시키십시오. 한 기준 정의에 NAME_PATTERN과 PATH_PATTERN을 같이 사용할 수 없습니다.
아래 정의된 QS_Source_Files 데이터 유형은 이름이 appn.c인 모든 파일에 적용됩니다. 여기서 n은 1에서 9 사이의 값이며 파일은 */projects/QS의 하위 디렉토리에 있습니다.
DATA_ATTRIBUTES QS_Source_Files { ... } DATA_CRITERIA QS_Source_Files_Criteria { PATH_PATTERN */projects/QS/*/app[1-9].c DATA_ATTRIBUTES_NAME QS_Source_Files }
다음 데이터 유형은 chnn.xxx라는 디렉토리 /doc/project1에 있는 모든 파일에 적용되며, n은 0에서 9 사이의 수이고, xxx는 세 자로 된 파일 이름 접미사입니다.
DATA_ATTRIBUTES ChapterFiles { DESCRIPTION 프로젝트 문서에 대한 장 파일입니다. ICON chapter ACTIONS Edit,Print } DATA_CRITERIA Chapter_Criteria { PATH_PATTERN /doc/project1/ch[0-9][0-9].??? DATA_ATTRIBUTES_NAME ChapterFiles }
모드 기준은 일반적으로 이름, 위치 또는 내용에 기초한 유형 지정을 조합하여 사용됩니다. 이러한 기준을 사용하면 데이터 유형을 파일이나 디렉토리로 제한하거나 필수인 읽기, 쓰기 및 실행 권한을 지정할 수 있습니다.
MODE 필드에는 논리 연산자(표 13-4)와 문자(표 13-5)가 포함될 수 있습니다.
표 13-4 MODE 필드 논리 연산자 및 설명
연산자 |
설명 |
---|---|
! | |
& | |
| |
표 13-5 MODE 필드 논리 연산자 및 설명
문자 |
설명 |
---|---|
데이터 유형이 파일에만 적용됩니다. |
|
데이터 유형이 디렉토리에만 적용됩니다. |
|
r |
파일을 모든 사용자가 읽을 수 있습니다. |
파일을 모든 사용자가 쓸 수 있습니다. |
|
파일을 모든 사용자가 실행할 수 있습니다. |
|
파일이 링크입니다. |
특정 모드에 대한 기본값은 해당 모드에 구애받지 않는 것입니다.
다음 모드 필드는 데이터 유형을 설명한 내용으로 제한합니다.
f&!w-읽기 전용 파일
!w-읽기 전용 파일 및 디렉토리
f&x-실행 파일
f&r&x-쓰기와 실행이 모두 가능한 파일
x|!w-실행 가능하거나 읽기 전용인 파일
다음 데이터 유형은 이름 지정 규약 *.doc에 따라 파일 이름을 정한 읽기 전용이며 실행 불가능한 파일의 데이터 유형을 작성합니다.
DATA_ATTRIBUTES ReadOnlyDocument { ICON read_only DESCRIPTION 이 문서는 쓰기 가능하지 않습니다. 두 번 누르면 \ 파일의 읽기 전용 사본으로 편집기를 실행합니다. ACTIONS View } DATA_CRITERIA ReadOnlyDocument_Criteria { NAME_PATTERN *.doc MODE !d&!x&!w DATA_ATTRIBUTES_NAME ReadOnlyDocument }
파일 내용에 기초한 데이터 유형을 지정하려면 CONTENT 필드를 사용하십시오. 내용 기반 데이터 유형 지정은 이름 또는 위치 기반 데이터 유형 지정과 조합하여 사용할 수 있습니다.
이 유형 지정은 파일의 문자열 또는 숫자를 기준으로 할 수 있습니다. 파일의 첫 바이트는 번호 0으로 지정됩니다.
파일의 숫자 내용에는 다음 구문을 사용하십시오.
CONTENT starting_byte byte number CONTENT starting_byte short number CONTENT starting_byte long number
디렉토리의 내용에는 다음 구문을 사용하십시오.
CONTENT 0 filename "file_name"
8진(o로 시작) 및 16진(oX로 시작) 숫자에 대해 표준 C 표기법을 사용하십시오.
내용 기반 데이터 유형 지정을 사용하면 시스템 성능이 느려집니다. 가능하면 이름이나 위치 기반 유형 지정을 사용하십시오.
예를 들어, 다음과 같은 데이터 유형 Writable_Wingz는 파일의 맨 앞에 문자열 WNGZ이 있고 쓰기 권한을 갖는 모든 파일에 적용됩니다.
DATA_ATTRIBUTES Writable_Wingz { ... } DATA_CRITERIA Writable_Wingz_Criteria { CONTENT 0 string WNGZ MODE w&!d DATA_ATTRIBUTES_NAME Writable_Wingz }
다양한 독립적 기준을 사용하여 데이터 유형을 작성할 수 있습니다. 즉, 파일이 기준 중 하나(또는 두 가지 모두)를 충족하는 경우 데이터 유형에 지정됩니다.
데이터 유형에 대한 DATA_ATTRIBUTES
정의를 작성하십시오.
각 기준에 대한 DATA_CRITERIA
정의를 작성하십시오.
각 기준을 동일한 DATA_ATTRIBUTES
정의로 연결하려면 DATA_ATTRIBUTES_NAME을 사용하십시오.
예를 들어, 다음 정의는 Mif 데이터 유형을 작성합니다. 유형 지정은 이름 또는 내용을 기준으로 합니다.
DATA_ATTRIBUTES Mif { ICON Frame ACTION_LIST Open,Print } DATA_CRITERIA Mif_Name_Criteria { DATA_ATTRIBUTES_NAME Mif NAME_PATTERN *.mif } DATA_CRITERIA Mif_Content_Criteria { DATA_ATTRIBUTES_NAME Mif CONTENT 1 string MIFFile }