Chapter4. 拡張関数


4.2 システム関数

関数名
S@IMEGETSTATE
機能
日本語入力で変換中の文字列の属性を取得する。
書式
int S@IMEGETSTATE(num)
《パラメーター》
num int。属性を調べたい日本語入力で変換中の文字列の番号を指定する。
 
戻り値 説明
int
変換中の文字列の番号を戻す。
0:指定の番号に文字列はない。
2:指定の番号は編集中の単語。
3:指定の番号は編集中であり単語の選択中。
解説
S@IMEGETSTR(0)で取得した文字列の指定した単語の属性を取得する。S@IMEGETSTRと一緒に利用する。
入力中の文字列は単語単位に分け編集を行う。この編集中の文字列を取得するには、S@IMEGETSTRでその時点で入力中の文字列を全て取得した後、取得した文字列から単語単位に文字列を取得する。
S@IMEGETSTRの第一引数に0を設定し実行するとその時点で入力中の文字列を全て取得する。
その後S@IMEGETSTRの第一引数に1以上を設定することで先頭から指定した番号の単語を取得する。また、S@IMEGETSTATEの第一引数に同じ値を指定をすることで単語の属性を取得する。「きょうはいいてんきです」を変換すると「きょうは」「いい」「てんきです」の3つに分割される。「てんきです」の単語を選択中であれば、S@IMEGETSTATEの第一引数に1〜3を指定することで、「きょうは」と「いい」は2、「てんきです」は3を取得する。4以上を指定した場合は0を取得する。
用例
変換中の文字列の内1〜4番目を表示し、変換中の文字列の属性を表示する。
CH=G@SETUP(400,400,16,1)
S@IMESETMODE( 1 )
LOOP
  G@CHRCLEAR( CH )
  S@IMEGETSTR( 0 )
  G@PRINT( CH, 0, 0, S@IMEGETSTR( 1 ) )
  G@PRINT( CH, 0, 20, S@IMEGETSTR( 2 ) )
  G@PRINT( CH, 0, 40, S@IMEGETSTR( 3 ) )
  G@PRINT( CH, 0, 60, S@IMEGETSTR( 4 ) )
  G@PRINT( CH, 0, 80, STR( S@IMEGETSTATE( 1 )) )
  G@PRINT( CH, 0,100, STR( S@IMEGETSTATE( 2 )) )
  G@PRINT( CH, 0,120, STR( S@IMEGETSTATE( 3 )) )
  G@PRINT( CH, 0,140, STR( S@IMEGETSTATE( 4 )) )
  G@FLIP()
ENDLOOP