version 11 (Modified)
Pasteboard data size (dataType) 数値
| 引数 | 型 | 説明 | |
| dataType | 文字列 | データタイプ | |
| 戻り値 | 数値 | ペーストボード中のデータサイズ (バイト) | |
| またはエラーコード |
説明
Pasteboard data size コマンドを使用して、dataType に渡したデータがペーストボード内に存在するかどうかを調べることができます。
Note: コピー/ペースト操作では、ペーストボードはクリップボードと同じです。
ペーストボードが空か指定したタイプのデータが含まれない場合、コマンドはエラー-102を返します。ペーストボードに指定したタイプのデータが含まれる場合、コマンドはバイト単位でデータのサイズを返します。
dataTypeにはチェックするデータのタイプを指定します。4D シグネチャ、UTI タイプ (Mac OS), フォーマット名/番号 (Windows), または4文字のタイプ (互換性)を指定できます。これらのタイプについてはペーストボードの管理の節を参照してください。
指定したタイプのデータがペーストボードに存在することを確認した後は、以下のいずれか1つのコマンドを使用し、そのデータをペーストボードから取り出すことができます:
・ペーストボードにあるデータがテキストタイプの場合には、テキスト値を返すGet text from pasteboardか、BLOBにテキストを返すGET PASTEBOARD DATAを使用してそのデータを取得できます。
・ペーストボードにあるデータがピクチャタイプの場合には、ピクチャをピクチャフィールドまたは変数に返すGET PICTURE FROM PASTEBOARDか、ピクチャをBLOBに返すGET PASTEBOARD DATAを使用してそのデータを取得できます。
・ペーストボードがファイルパス名を含む場合、ファイルパス名を返すGet file from pasteboard コマンドを使用します。
・上記以外の任意のデータタイプに対しては、データをBLOBに返すGET PASTEBOARD DATAを使用します。
例題
1. 以下のコードは、ペーストボードにJPEGピクチャが存在するかどうかをテストし、存在する場合にはそのピクチャを4D変数にコピーします:
If (Pasteboard data size ("com.4d.private.picture.jfif") > 0) ` ペーストボードにJPEGピクチャがあるか?
GET PICTURE FROM PASTEBOARD($vPicVariable) ` もしあれば取り出す
Else
ALERT("There is no picture in the pasteboard.")
End if
2. 通常、アプリケーションはテキストタイプまたはピクチャタイプのデータをペーストボードにカットおよびコピーします。これは、ほとんどのアプリケーションでこの2つの標準データタイプが認識されているためです。ただし、アプリケーションは1つのデータを複数の異なるインスタンスのフォーマットでペーストボードに追加することができます。例えば、スプレッドシートの一部をカットまたはコピーするたびに、スプレッドシートアプリケーションはそのデータをSYLKフォーマットやTEXTフォーマットの他に、仮想的なSPSHフォーマットでも追加することができます。SPSHインスタンスにはアプリケーションのデータ構造を使用してフォーマットされたデータが含まれています。SYLK形式には同じデータが含まれていますが、SYLKフォーマットを用いると、他の多くのスプレッドシートプログラムからも認識されます。最後に、TEXTフォーマットには同じデータが含まれますが、SYLKやSPSHフォーマットに含まれる追加のな情報は入っていません。この点で、4Dとその仮想的なスプレッドシートアプリケーション間でのカット/コピー/ペーストルーチンを記述する際に、SPSHフォーマットの内容を知り、SYLKデータの解析準備ができた場合には、以下のようなコードを作成することができます:
Case of
` まずペーストボードに仮想的なスプレッドシートのデータが含まれるかチェック
: (Pasteboard data size ("SPSH") > 0)
` ...
` 次にペーストボードにSylkデータが含まれるかチェック
: (Pasteboard data size ("SYLK") > 0)
` ...
` 次にペーストボードにTextデータが含まれるかチェック
: (Pasteboard data size ("TEXT") > 0)
` ...
End case
つまり、オリジナルの情報の大部分を含むデータのインスタンスをペーストボードから取り出そうとしています。
3. APPEND DATA TO PASTEBOARD コマンドの例題参照
参照
GET PASTEBOARD DATA, GET PICTURE FROM PASTEBOARD, Get text from pasteboard.