getstr

バッファから文字列読み出し

getstr p1,p2,p3,p4,p5

p1=変数   : 内容を読み出す先の変数名
p2=変数   : バッファを割り当てた変数名
p3=0~    : バッファのインデックス(Byte単位)
p4=0~255 : 区切りキャラクタのASCIIコード
p5=0~(1024) : 読み出しを行なう最大文字数

解説

メモリ上のバッファの任意の場所にある内容を文字列として変数に読み出します。
文字列は、00というコードか、改行コードがあるまで読み出されます。改行コードは文字列には含まれません。

また、区切りキャラクタコードを指定することができ任意の文字で区切られた文字列を取り出すこともできます。

この命令で読み出されたByte数は自動的に strsizeというシステム変数に代入されます。strsizeは、次のインデックスまでの移動量を得る時に使用します。

たとえば、変数bのバッファに'A' 'B' 'C' ',' 'D' 'E' 'F' 00(終了コード)というデータが入っている場合、

getstr a,b,0,','

を実行すると、変数aの内容は、'A' 'B' 'C' の部分が読み出されて"ABC"という文字列になり、strsize は4になります。

p5パラメーターにより、読み出しを行なう最大文字数(byte数)を指定することができます。
p5パラメーターが省略された場合には、1024文字(byte)までの読み出しを行ないます。
(p1で指定された変数のバッファは自動的に確保されるので、sdim命令等でバッファの設定を行なっておく必要はありません。)

この命令は、複数行を含むテキスト文字列データや、特定の文字で区切られたデータを効率よく切り出すためのものです。
複数行を含むテキストを扱うためには、他にもメモリノートパッド命令セットがあります。また、文字列から特定数の文字を取り出すためには、strmid命令が用意されています。

関連項目

strmid文字列の一部を取り出す

サンプル逆引き (1)

dirinfo.hsp

情報

バージョン3.6
作成日2020/01/07
著作者onitama
URLhttp://hsp.tv/
備考ver3.6標準命令
タイプ内蔵命令
グループ文字列操作命令
対応環境
  • Windows 版 HSP
  • コマンドライン版 HSP
  • HSPLet
hs ファイルhsphelp\i_string.hs