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 \ 計畫的文件。 ICO 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 }
以下資料類型應用於目錄 /doc/project1 中名為 chnn.xxx 的所有檔案,其中 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 模式欄位邏輯運算子與說明
運算子 |
說明 |
---|---|
! | |
& | |
| |
表 13-5 模式欄位字元與說明
字元 |
說明 |
---|---|
資料類型只應用於檔案 |
|
資料類型只應用於目錄 |
|
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 位元組 數字 CONTENT starting_byte 短 數字 CONTENT starting_byte 長 數字
對於目錄的內容,使用此語法:
CONTENT 0 檔案名稱 "file_name"
使用八進位(前導 o)與十六進位(前導 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_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 }