BufSetAlpha

 

バッファに文字データを格納

文字データをBLOBバッファの指定した位置に挿入します。

構文:

BufSetAlpha(参照項目、位置、値、記憶形式、長さ、ポインタ値)

パラメータ:

  • 参照項目 …… バッファとなるBLOB項目。VARリテラルが必要です。

  • 位置 …… データの挿入位置(Byte単位)を表す数値。バッファの先頭は1です。

  • …… 挿入される文字データ

  • 記憶形式 …… Magic での記憶形式を表す数値

  • 長さ …… 文字の長さを表す数値。(単位は、直前に実行したSetBufCnvParam関数によって設定されたエンコード指定に依存します。)

  • ポインタ値 …… 文字データが直接バッファ書き込まれるか、ポインタとして書かれるべきであるかどうかを示す論理値。 「True」の場合は、 バッファに文字列のポインタを書き込みます。この場合、4バイトのデータが消費されます。サイズが定義されない文字列を扱う場合は、ポインタを使用してください。

戻り値:

論理値 ……  処理に成功した場合「True」が返ります。

以下のような場合、処理は失敗します。

  • 参照項目が正しくない場合

  • 参照項目が BLOB でない場合

  • 位置パラメータが負数の場合

例:

以下の例は、バッファの先頭から9バイト分'my-string'という文字列を挿入しています。次に、'dynamic-string1' と'dynamic-string2' という文字列をポインタで挿入しています。

 

BufSetAlpha('A'VAR,1,'my-string',1,9,'FALSE'LOG)

BufSetAlpha('A'VAR,10,'dynamic-string1',1,15,'True'LOG)

BufSetAlpha('A'VAR,14,'dynamic-string2',1,15,'True'LOG)

注意事項:

リッチクライアントタスクでは、ポインタ指定は使用できません。

記憶形式タイプとして「LString」または「ZString」を使用する場合、取得する文字長と位置の関係に注意してください。文字の末尾のNULLを考慮する必要があります。

例えば、半角5桁(5バイト)の文字が格納されている次の領域の位置は、6バイト分が加算され「7」になります。

BufSetAlpha('A'VAR,1,'ABCDE',2,5,'TRUE'LOG)

BufSetAlpha('A'VAR,7,'FGHIJ',2,5,'TRUE'LOG)

関連トピック:

SetBufCnvParam

バッファ