4D v16.3

TEXT TO BLOB

ホーム

 
4D v16.3
TEXT TO BLOB

TEXT TO BLOB 


 

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

説明   

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
"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に追加できます。

例題  

 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
テーマ: BLOB
番号: 554

This command can be run in preemptive processes

 
履歴 

変更: 4D v11 SQL

 
タグ 

UTF8, Text

 
ARTICLE USAGE

ランゲージリファレンス ( 4D v16)
ランゲージリファレンス ( 4D v16.1)
ランゲージリファレンス ( 4D v16.2)
ランゲージリファレンス ( 4D v16.3)