TEXT TO BLOB

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

version 11 (Modified)


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

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

説明

TEXT TO BLOB コマンドはテキスト値 textをBLOB blobに書き込みます。

textFormat 引数を使用して、書き込むテキスト値の内部フォーマットと文字セットを指定できます。これを行うには、“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
"Cafe" $43 61 66 C3 A9 00
Mac"" $00
"Cafe" $43 61 66 8E 00
Pascal Stringテキストの前に1バイトのテキスト長が置かれる
UTF8-
-
Mac"" $00
"Cafe" $04 43 61 66 8E
Text with lengthテキストの前に3バイト (UTF8) または2バイト (Mac) のテキスト長が置かれる
UTF8"" $00 00 00 00
"Cafe" $00 00 00 05 43 61 66 C3 A9
Mac"" $00 00
"Cafe" $00 04 43 61 66 8E
Text without lengthテキストはその文字だけで構成される
UTF8"" データなし
"Cafe" $43 61 66 C3 A9
Mac"" データなし
"Cafe" $43 61 66 8E

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

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

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

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

例題

   SET BLOB SIZE (vxBlob;0)
   C_TEXT (vtValue)
   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.


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