RESOURCE TYPE LIST
RESOURCE TYPE LIST ( resTypes {; resFile} )
引数 | 型 | 説明 | |
---|---|---|---|
resTypes | Text array | ← | 利用可能なリストタイプのリスト |
resFile | Time | → | リソースファイル参照番号、または 省略時、開かれている全てのリソースファイル |
このコマンドはスレッドセーフではないため、プリエンプティブなコードには使えません。
説明
RESOURCE TYPE LIST コマンドは、現在開いているリソースファイルの中に存在するリソースのリソースタイプによるresTypes配列を作成します。
オプション引数resFileに有効なリソースファイル参照番号を渡すと、そのファイルのリソースのみが返されます。resFileを省略した場合、現在開いているリソースファイルのすべてのリソースが返されます。
RESOURCE TYPE LISTを呼び出す前に、resTypes配列を文字列配列またはテキスト配列としてあらかじめ定義することができます。配列の事前定義を行わない場合、このコマンドはテキスト配列のresTypesを作成します。
このコマンドの実行後、Size of arrayをresTypes配列に対して実行し、見つかったリソースタイプの数を調べることができます。
例題 1
以下の例は、現在開いているすべてのリソースファイルに存在するリソースのリソースタイプによるatResType配列を作成します:
RESOURCE TYPE LIST(atResType)
例題 2
以下の例題では、Macintoshの4Dストラクチャファイルに古い4Dプラグインが含まれているかどうかをテストします。もし含まれていれば、これをWindowsで使用するためには更新が必要です。
$vhResFile:=Open resource file(Structure file)
RESOURCE TYPE LIST(atResType;$vhResFile)
If(Find in array(atResType;"4DEX")>0)
ALERT("This database contains old model Mac OS 4D plug-ins."+(Char(13)*2)+
"You will have to update them for using this database on Windows.")
End if
Note: 古いプラグインはストラクチャファイル以外にも存在する可能性があります。またデータベースにはProc.Extファイルが含まれているかもしれません。
例題 3
以下のプロジェクトメソッドは、リソースファイルの中に存在するリソースの数を返します:
// Count resources プロジェクトメソッド
// Count resources ( 時間 ) -> 倍長整数
// Count resources ( DocRef ) -> リソース数
var $0 : Integer
var $1 : Time
$0:=0
RESOURCE TYPE LIST($atResType;$1)
For($vlElem;1;Size of array($atResType))
RESOURCE LIST($atResType{$vlElem};$alResID;$atResName;$1)
$0:=$0+Size of array($alResID)
End for
このメソッドをデータベースに組み込むと、以下のように記述できます:
$vhResFile:=Open resource file("")
If(OK=1)
ALERT("The file “"+Document+"” contains "+String(Count resources($vhResFile))+" resource(s).")
CLOSE RESOURCE FILE($vhResFile)
End if