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 为 0 到 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 。
对于文件的数字内容,请使用语法:
CONTENT starting_byte bytenumber CONTENTstarting_byte shortnumber CONTENTstarting_byte longnumber
对于目录的内容,请使用语法:
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_NAME Mif NAME_PATTERN *.mif } DATA_CRITERIA Mif_Content_Criteria { DATA_ATTRIBUTES_NAME Mif CONTENT 1 string MIFFile }