SET RESOURCE

4D - Documentation   French   English   German   Spanish   日本語   4D v11 SQLコマンドテーマリスト   4D v11 SQLインデックス   4D v11 SQL定数テーマリスト   戻る   前   次

version 6.0


SET RESOURCE (resType; resID; resData{; resFile})

引数説明
resType文字列4文字のリソースタイプ
resID数値リソースID番号
resDataBLOBリソースの新しい内容
resFileDocRefリソースファイル参照番号、または
省略時、カレントリソースファイル

説明

SET RESOURCE コマンドは、BLOB resDataに渡されるデータを使って引数resTyperesIDに渡されるタイプとIDを持つリソースを作成または上書きします。

重要: resTypeには4文字を渡す必要があります。

リソースを書き込めなかった場合、システム変数OKに0が設定されます。

resFileに有効なリソースファイル参照番号を渡すと、リソースはそのリソースファイルに追加されます。resFileを省略した場合、リソースはリソースチェーンの最上位にあるファイル (最後に開いたリソースファイル) に追加されます。

Note: リソースは数メガバイトのサイズになる可能性があります。

プラットフォーム独立性: Mac OSベースのリソースに対して作業していることを忘れないでください。プラットフォームが何であろうと、倍長整数のような内部リソースデータはMacintoshバイトオーダーで格納されます。Windows上では、(ストリングリストリソースおよびピクチャリソース等の) 標準リソースデータは必要に応じて自動的にバイトスワップされます。これに対して、カスタム内部データストラクチャを作成および使用する場合は、BLOBから取り出すデータのバイトスワップは開発者に任されています (LONGINT TO BLOBコマンドにMacintosh byte ordering定数を渡すなど)。

例題

4Dセッション中にインタープロセス変数でユーザの環境設定を管理すると仮定します。この環境設定をセッション間で保存するには、以下のように記述できます:

1. SAVE VARIABLESLOAD VARIABLESを使って、ディスク上の変数ドキュメントにその変数を保存して取り出します。

2. VARIABLE TO BLOBBLOB TO DOCUMENTDOCUMEN T TO BLOBBLOB TO VARIABLEコマンドを使って、ディスク上のBLOBドキュメントにその変数を保存して取り出します。

3. VARIABLE TO BLOBSET RESOURCEGET RESOURCEBLOB TO VARIABLEコマンドを使って、ディスク上のリソースファイルにその変数を保存して取り出します。

以下の例は、3番目のメソッドの例です。

On Exit データベースメソッドに以下のように記述します:

      ` On Exit データベースメソッド
   If (Test path name("DB_Prefs")#Is a document)
      $vhResFile:=Create resource file("DB_Prefs")
   Else
      $vhResFile:=Open resource file("DB_Prefs")
   End if
   If (OK=1)
      VARIABLE TO BLOB(<>vbAutoRepeat;$vxPrefData)
      VARIABLE TO BLOB(<>vlCurTable;$vxPrefData;*)
      VARIABLE TO BLOB(<>asDfltOption;$vxPrefData;*)
         ` and so on...
      SET RESOURCE("PREF";26500;$vxPrefData;$vhResFile)
      CLOSE RESOURCE FILE($vhResFile)
   End if

On Startup データベースメソッドに以下のように記述します:

      ` On Startup データベースメソッド
   C_BOOLEAN(<>vbAutoRepeat)
   C_LONGINT(<>vlCurTable)
   $vbDone:=False
   $vhResFile:=Open resource file("DB_Prefs")
   If (OK=1)
      GET RESOURCE("PREF";26500;$vxPrefData;$vhResFile)
      If (OK=1)
         $vlOffset:=0
         BLOB TO VARIABLE($vxPrefData;<>vbAutoRepeat;$vlOffset)
         BLOB TO VARIABLE($vxPrefData;<>vlCurTable;$vlOffset)
         BLOB TO VARIABLE($vxPrefData;<>asDfltOption;$vlOffset)
            ` and so on...
         $vbDone:=True
      End if
      CLOSE RESOURCE FILE($vhResFile)
   End if
   If(Not($vbDone))
      <>vbAutoRepeat:=False
      <>vlCurTable:=0
      ARRAY STRING(127;<>asDfltOption;0)
   End if

参照

BLOB コマンド, GET RESOURCE.

システム変数とセット

リソースを書き込めた場合システム変数OKに1が設定されます。それ以外は0が設定されます。


4D - Documentation   French   English   German   Spanish   日本語   4D v11 SQLコマンドテーマリスト   4D v11 SQLインデックス   4D v11 SQL定数テーマリスト   戻る   前   次