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 This file contains a document for the QS \ project. ICON Word_Doc ACTIONS Open } DATA_CRITERIA QS_Doc_Criteria { NAME_PATTERN QS*.doc DATA_ATTRIBUTES_NAME QS_Doc }
下列定义为名为Demo_n 的目录创建数据类型,其中n为 1 到 9。
DATA_ATTRIBUTES Demo_directory { DESCRIPTION This is a directory. Double-click to open it. 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 Graphics file for the QS project. Double-click the \ icon to see the graphic. 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 }
下列数据类型适用于所有在目录/doc/project1 中的,名为chnn.xxx 的文件,其中n为 0 到 9,并且xxx为任何三个字符的文件名后缀。
DATA_ATTRIBUTES ChapterFiles { DESCRIPTION Chapter file for the project document. 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 This document is not writable. Double- \ clicking runs your editor with a \ read-only copy of the file. ACTIONS View } DATA_CRITERIA ReadOnlyDocument_Criteria { NAME_PATTERN *.doc MODE !d&!x&!w DATA_ATTRIBUTES_NAME ReadOnlyDocument }
使用CONTENT字段来指定基于文件内容的数据分类。基于内容的数据分类可与 基于名称或基于位置的数据分类组合使用。
分类可基于文件的字符串或数字内容。文件的第一字节的编号为 0 。
对于文件的数字内容,请使用语法:
CONTENTstarting_bytebytenumber CONTENTstarting_byteshortnumber CONTENTstarting_bytelongnumber
对于目录的内容,请使用语法:
CONTENT 0 filename "file_name"
使用标准 C 的八进制(前导o)和十六进制(前导oX)数字的记数法。
使用基于内容的数据分类将导致系统性能减慢。只要有可能,就换用基于名称和位置的分类。
例如,下列数据类型,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_ATTRIBUTES_NAME字段来将每个标准连接到 相同的DATA_ATTRIBUTES
定义。
例如,下列定义创建了 Mif 数据类型。分类是基于名称或内容的。
DATA_ATTRIBUTES Mif { ICON Frame ACTION_LIST Open,Print } DATA_CRITERIA Mif_Name_Criteria { DATA_ATTRIBUTES_NAM Mif NAME_PATTERN *.mif } DATA_CRITERIA Mif_Content_Criteria { DATA_ATTRIBUTES_NAME Mif CONTENT 1 string MIFFile }