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

TEXT TO BLOB

TEXT TO BLOB ( text ; blob {; textFormat {; offset}} )
TEXT TO BLOB ( text ; blob {; textFormat {; *}} )

引数説明
textTextBLOBに書き込むテキスト
BlobBlobテキストを受け取るBLOB
textFormatIntegerテキストのフォーマットと文字セット
offset | *変数, 演算子BLOB内のオフセット (バイト単位) または値を追加する場合 *
*でない場合、書き込み後の新しいオフセット

説明

TEXT TO BLOBコマンドはテキスト値 textをBLOB blobに書き込みます。引数を使用して、書き込むテキスト値の内部フォーマットと文字セットを指定できます。これを行うには、BLOBテーマの以下の定数のうちいずれかをtextFormat 引数に渡します:

定数
Mac C string倍長整数0
Mac Pascal string倍長整数1
Mac text with length倍長整数2
Mac text without length倍長整数3
UTF8 C string倍長整数4
UTF8 text with length倍長整数5
UTF8 text without length倍長整数6

textFormat 引数を省略した場合、デフォルトで4DはMac C Stringフォーマットを使用します。4Dバージョン11以降で作成されたデータベースでは、4Dはテキストの処理にデフォルトでUnicode文字セット (UTF-8) を扱います。そのためこの文字セットを利用が推奨されます。

Notes:

  • "UTF8"から始まる定数は、Unicodeモードのアプリケーションでのみ使用できます。
  • "Mac"から始まる定数は、32 KBまでのテキストを扱えます。
  • UTF-8以外の文字セットを使用するにはCONVERT FROM TEXTコマンドを使用します。

これらのフォーマットについて説明します:

テキストフォーマット説明と例題
C stringテキストはNULL文字 (ASCIIコード 00ドル)で終了する
UTF8"" --> 00ドル
"Café" --> 43ドル 61 66 C3 A9 00
Mac"" --> 00ドル
"Café" --> 43ドル 61 66 8E 00
Pascal stringテキストの前に1バイトのテキスト長が置かれる
UTF8-
-
Mac"" --> 00ドル
"Café" --> 04ドル 43 61 66 8E
Text with lengthテキストの前に4バイト (UTF8) または2バイト (Mac) のテキスト長が置かれる
UTF8"" --> 00ドル 00 00 00
"Café" --> 00ドル 00 00 05 43 61 66 C3 A9
Mac"" --> 00ドル 00
"Café" --> 00ドル 04 43 61 66 8E
Text without lengthテキストはその文字だけで構成される
UTF8"" --> データなし
"Café" --> 43ドル 61 66 C3 A9
Mac"" --> データなし
"Café" --> 43ドル 61 66 8E

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

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

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

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

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

例題

 SET BLOB SIZE(vxBlob;0)
var vtValue : Text
vtValue:="Cafe" // vtValue長さは4バイト
TEXT TO BLOB(vtValue;vxBlob;Mac C string) // BLOBのサイズは5 bytes
TEXT TO BLOB(vtValue;vxBlob;Mac Pascal string) // BLOBのサイズは5 bytes
TEXT TO BLOB(vtValue;vxBlob;Mac text with length) // BLOBのサイズは6 bytes
TEXT TO BLOB(vtValue;vxBlob;Mac text without length) // BLOBのサイズは4 bytes
TEXT TO BLOB(vtValue;vxBlob;UTF8 C string) // BLOBのサイズは6 bytes
TEXT TO BLOB(vtValue;vxBlob;UTF8 text with length) // BLOBのサイズは9 bytes
TEXT TO BLOB(vtValue;vxBlob;UTF8 text without length) // BLOBのサイズは5 bytes

参照

BLOB to integer
BLOB to longint
BLOB to real
BLOB to text
CONVERT FROM TEXT
INTEGER TO BLOB
LONGINT TO BLOB
REAL TO BLOB

プロパティ

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

AltStyle によって変換されたページ (->オリジナル) /