English help on website



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

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

パラメータ2(数値型)
0から数えたUnicode(UCS-4)単位の文字位置(column_ucs4相当)を指定します。

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


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