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 模式欄位邏輯運算子與說明
運算子 |
說明 |
---|---|
! | |
& | |
| |
表 13-5 模式欄位字元與說明
字元 |
說明 |
---|---|
資料類型只應用於檔案 |
|
資料類型只應用於目錄 |
|
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 位元組 數目 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 }