メインコンテンツまでスキップ
バージョン: 20 R7 BETA

REAL TO BLOB

REAL TO BLOB ( real ; BLOB ; realFormat {; offset | *} )

引数説明
realRealBLOBに書き込む実数値
BlobBlob実数値を受け取るBLOB
realFormatInteger0 Native real format 1 Extended real format 2 Macintosh Double real format 3 Windows Double real format
offset | *変数, 演算子BLOB内のオフセット (バイト単位) または値を追加する場合 *
*でない場合、書き込み後の新しいオフセット

説明

REAL TO BLOB コマンドは、blobに実数値realを書き込みます。

realFormat引数は、実数値が書き込まれる際の内部フォーマットバイトオーダーを決定します。4Dが提供する以下の定義済み定数のうち、いずれか1つを渡します:

定数
Extended real format倍長整数1
Macintosh double real format倍長整数2
Native real format倍長整数0
PC double real format倍長整数3

プラットフォーム独立性に関する注意

MacintoshとPCプラットフォーム間でBLOBを交換する場合、このコマンドを使用する際の実数フォーマットとバイトスワップの管理は開発者に任されています。

オプションの * 引数を渡すと、実数値はBLOBの最後に追加され、BLOBサイズはそれに従い拡張されます。オプションの * 引数を使用することで、BLOBがメモリに収まる限り、整数, 倍長整数, 実数 あるいは テキスト値 (他のBLOBコマンド参照) をBLOBに連続して格納できます。

オプション引数 *offset変数引数を指定しない場合、実数値はBLOBの最初に格納され、それ以前の内容を上書きします。これに合わせてBLOBのサイズも調整されます。

offset変数引数を渡した場合、実数値はBLOB内のオフセット(ゼロから開 始)に書き込まれます。実数値を書き込む位置に関わらず、BLOBのサイズは渡した位置に従って(必要に応じてさらに最大8または10バイトまで)増加し ます。現在書き込んでいるバイト以外の新しく割り当てられるバイトは、ゼロに初期化されます。

呼び出し後、offset変数引数は、書き込まれたバイト数分だけインクリメントされます。したがって、同じoffset変数引数を別のBLOB書き込みコマンドにも使用し、別の値をBLOBに追加できます。

互換性に関する注意: このコマンドは引数として渡されたBlob を変更するため、Blob オブジェクト(4D.Blob 型)はサポートしません。developer.4d.com でのの Passing blobs and blob objects to 4D commands のページを参照して下さい。

例題 1

以下のコードを実行すると:

 var vrValue : Real
 vrValue:=...
 REAL TO BLOB(vrValue;vxBlob;Extended real format)
  • すべてのプラットフォームでvxBlobのサイズは10bytesになります

例題 2

以下のコードを実行すると:

 var vrValue : Real
 vrValue:=...
 REAL TO BLOB(vrValue;vxBlob;Native real format)
  • すべてのプラットフォームでvxBlobのサイズは8 bytesになります

例題 3

以下のコードを実行すると:

 SET BLOB SIZE(vxBlob;100)
 var vrValue : Real
 vrValue:=...
 INTEGER TO BLOB(vrValue;vxBlob;Windows Double real format) // または Macintosh double real format

すべてのプラットフォームでvxBlobのサイズは8 bytesになります

例題 4

以下のコードを実行すると:

 SET BLOB SIZE(vxBlob;100)
 var vrValue : Real
 vrValue:=...
 vlOffset:=50
 REAL TO BLOB(vrValue;vxBlob;Windows Double real format;vlOffset) // または Macintosh double real format
  • すべてのプラットフォームでvxBlobのサイズは100bytesになります
  • すべてのプラットフォームで、実数値は#50から#57までのバイトに書き込まれます
  • BLOBの他のバイトは変更されません
  • 変数vlOffsetは8インクリメントされ58となります

例題 5

以下のコードを実行すると:

 var vrValue : Real
 vrValue:=...
 REAL TO BLOB(vrValue;vxBlob;Macintosh double real format) // または PC double real format
  • すべてのプラットフォームでvxBlobのサイズは8 bytesになります

例題 6

以下のコードを実行すると:

 SET BLOB SIZE(vxBlob;100)
 REAL TO BLOB(vrValue;vxBlob;Extended real format;*)
  • すべてのプラットフォームでvxBlobのサイズは110bytesになります
  • すべてのプラットフォームで、実数値は#100から#109までのバイトに書き込まれます
  • BLOBの他のバイトは変更されません

参照

BLOB to integer
BLOB to longint
BLOB to real
BLOB to text
INTEGER TO BLOB
LONGINT TO BLOB
TEXT TO BLOB

プロパティ

コマンド番号552
スレッドセーフである