English help on website



wcs_to_char( s1, n1 ) 関数(Ver9.24対応版)
目次関数(文字列操作)− wcs_to_char( s1, n1 ) 関数
wcs_to_char関数は、Unicode(UCS-2)単位の文字位置から文字位置の変換をして、変換された位置を取得します。(V8.96以降)

パラメータ1(文字列型 または 数値型)
文字列を指定すると、文字列を対象に変換します。
数値を指定すると、1から数えた行番号(lineno相当)の本文のテキストを対象に変換します。

パラメータ2(数値型)
0から数えた文字位置(column_wcs相当)を指定します。

返り値(数値型)
文字位置(column相当)を返します。


strlen等の文字の数え方は、全角を2つ、半角を1つとして数えます。
wcslen等のUnicode(UCS-2)の文字の数え方は、全角も半角も1つとして数えます。
この数え方の違いを変換します。
文字の先頭を 0 として、いくつ目かで計算します。
以下の例では、6を返します。
#c = wcs_to_char("あいうabcde", 3 ); //"あいう"はcolumn_wcs相当で3文字
message str(#c); //column相当で6文字
newfile;
insert "あいうabcde\n"; //1行目となるテキスト
#c = wcs_to_char(1,3); //1行目のcolumn_wcs相当で3文字
message str(#c); //column相当で6文字
関数名は互換のためにwideindex_to_charindexとしても使えます。
参照:
column
char_to_wcs
wcslen
文字の単位
文字の単位ごとに各種のバリエーションがあります。