Chapter3. ステートメント


3.2 標準関数

関数名
LSET
機能
文字列変数内の文字列の長さを変更する。
書式
char LSET(文字列変数、領域長)
《パラメーター》
文字列変数 char。
領域長 int。
戻り値 char。格納領域を変更した変数。
解説
LSETは、引数の文字列変数内の文字列の長さを変更し、戻り値に指定した変数に代入する処理を行う。文字列変数内の文字列長よりも引数2の領域長の方が大きい場合には、文字列変数内の文字列の後ろにスペースが加えられる。例えば引数1の文字列変数に”ABCD”が代入されており、引数2の領域長を10とした場合、戻り値には”ABCD      ”というように後ろにスペースが6つ追加される。逆に文字列変数内の文字列長よりも引数2の領域長の方が小さい場合には、領域長で指定した文字列長に短くした結果となる。
本関数はEXFUNCでDLLを利用する場合で、引数で渡した文字列変数に結果を代入して戻すDLLを利用する際に主に使用する。LGPの文字列変数が格納できる最大文字列長は同変数に代入する文字列のサイズに合わせて適切に変更している。上記で示すDLLを使用する以外では、この文字列長の格納領域長を気にする必要はない。(空きメモリがある限り取得可能。100万文字も問題なしw)
しかし上記で示すDLLの場合で、引数で渡す文字列変数の文字列長よりも長い文字列がDLLで代入される可能性がある場合には、DLLを実行する前に文字列変数の格納領域長を十分な大きさにしておく必要がある。
用例
文字列変数Aに”ABCD”を代入し、同変数Aの文字列長を10に変更する。
A$ = "ABCD"
A$ = LSET( A$ , 10 )