文字列操作†
28 個の関数。
ANY†
書式†
ANY(var)
引数†
| Parameter | Description |
|---|---|
| var | ランダムに選択する対象。文字列・汎用配列・整数・実数のいずれか |
戻り値†
成功時:ランダムに選ばれた要素のひとつ 失敗時:VOID
文字列を簡易配列として扱う場合はその中からランダムに1要素を返す。変数で与えた場合は、その変数のデリミタが考慮される。汎用配列の場合もランダムに1要素を返す。数値型(整数・実数)の場合はその値をそのまま返す。選ばれた要素のインデックスは LSO 関数で取得できる。
使用例†
_array = ('さくら','まゆら','ねここ')
ANY(_array) // 「まゆら」などランダムな要素を返す
_str = 'さくら,まゆら,ねここ'
ANY(_str) // 「ねここ」などランダムな要素を返す
LSO // 2(「ねここ」のインデックス)を返す
互換性†
- YAYA: 初期リリースから利用可能
- AYA: バージョン 5.8 以降
関連項目†
CHR†
書式†
CHR( val [, val ... ] )
引数†
| Parameter | Description |
|---|---|
| val | UCS-2の文字コード値(数値)。複数指定可能 |
戻り値†
成功時:変換された文字または文字列(引数の数に等しい長さの文字列) 失敗時:VOID
解説†
UCS-2 コードを数値で指定すると、対応する 1 文字を文字列で返す。数値は複数指定でき、その場合は引数の数だけの長さの文字列を返す(汎用配列を渡せば文字列が返る)。UCS-2 コードは ASCII の範囲では ASCII コードと互換性がある。
使用例†
CHR(65) // "A" を返す
CHR(20282) // "伺" を返す
互換性†
- YAYA: 初版から利用可能
- AYA: バージョン5.8以降
関連項目†
CHRCODE†
書式†
CHRCODE( string [ , pos ] )
引数†
| Parameter | Description |
|---|---|
| string | 文字コードを取得したい文字を含むテキスト |
| pos | (省略可)文字コードを取得する文字位置(0始まり)。省略時は0 |
戻り値†
成功時:文字コードを表す数値 失敗時:0
UCS-2の文字コードを返す。ASCII文字(半角英数字)についてはASCIIコードと互換性がある。
使用例†
CHRCODE('A') // 65 を返す
CHRCODE('ABC', 2) // 67(文字'C')を返す
CHRCODE('伺') // 20282 を返す
互換性†
- YAYA: 初版から利用可能
- AYA: バージョン5.8以降
関連項目†
CUTSPACE†
書式†
CUTSPACE(string)
引数†
| Parameter | Description |
|---|---|
| string | 処理対象の文字列 |
戻り値†
成功時:文字列の先頭と末尾の空白文字(半角空白、全角空白、タブ)を除去した文字列 失敗時:VOID
文字列の両端にある空白文字を除去する。内部の空白(単語間)は保持される。
使用例†
CUTSPACE(' さくら まゆら ') // 「さくら まゆら」を返す
互換性†
- YAYA: 初版から利用可能
- AYA: バージョン5.8以降
ERASE†
書式†
ERASE( src, pos, len )
引数†
| Parameter | Description |
|---|---|
| src | 削除対象の文字列 |
| pos | 削除開始位置(0が先頭)。負の値を指定すると末尾からのオフセットとして扱われる。 |
| len | 削除する文字数。文字列の総文字数を超えた場合は空文字列を返す。 |
戻り値†
削除後の文字列。削除長が文字列全体を超える場合は空文字列を返す。
解説†
文字列の指定した部分を削除する。
使用例†
_str = 'さくらまゆらねここ'
ERASE( _str, 2, 6 ) // 「さくこ」を返す
互換性†
- YAYA: 初版より対応
- AYA: 5.8以降
- Tc539-3以降: pos に負の値を指定できるようになった
関連項目†
GETSTRBYTES†
書式†
GETSTRBYTES( string [ , code ] )
引数†
| Parameter | Description |
|---|---|
| string | バイト数を計算する対象の文字列 |
| code | 文字コードID(省略時は0)、または文字コードの名前(文字コードの名前)。エンコードを指定してバイト数を計算する。知らない名前なら警告 W0012 を出して 0 を返す |
戻り値†
- 成功時: 文字列を格納するのに必要なバイト数(整数)
- 失敗時: 0
解説†
「文字列を格納するのに必要なバイト数」を計算する関数。文字エンコードごとのメモリ使用量を調べることができる。
互換性†
- YAYA: 初期から利用可能
- AYA: 5.8以降
- Tc574-8 / Tc603-1: 知らない文字コードの名前を渡すと、警告 W0012 を出して0 を返すようにした(それまでは警告を出さずに OS デフォルトとして扱っていた)
関連項目†
HAN2ZEN†
書式†
HAN2ZEN( src [ , type ] )
引数†
| Parameter | Description |
|---|---|
| src | 変換対象の文字列 |
| type | (省略可)変換する文字種をカンマ区切りで指定。省略時は全種類を変換する |
type に指定できる値:
| 値 | 対象 |
|---|---|
number |
数字(0〜9) |
alphabet |
アルファベット |
symbol |
記号など |
kana |
カタカナ・句読点等 |
戻り値†
- 成功時: 変換後の文字列
- 失敗時: VOID
解説†
文字列内の半角英文字・数字・カタカナを全角に変換する。type で変換対象の文字種を絞り込むことができる。
使用例†
_result = HAN2ZEN('2007ABC', 'number,alphabet')
// 結果: "2007ABC"
互換性†
- YAYA: TC513-901以降
関連項目†
HEXSTRTOI†
書式†
HEXSTRTOI( string )
引数†
| Parameter | Description |
|---|---|
| string | 変換対象の16進数値文字列 |
戻り値†
- 成功時: 変換後の数値(整数)
- 失敗時: 0
解説†
16進数値文字列を整数へ変換する。先頭に 0x プレフィックスがある場合は無視する。
使用例†
_hex = '1E'
_i = HEXSTRTOI( _hex )
// _i は 30(16進数 1E = 10進数 30)
互換性†
- YAYA: 初期から利用可能
- Tc547-1以降: 先頭の
0xプレフィックスを処理可能
- Tc547-1以降: 先頭の
- AYA: 5.8以降
関連項目†
BINSTRTOI†
書式†
BINSTRTOI(string)
引数†
| Parameter | Description |
|---|---|
| string | 変換する2進数の文字列 |
戻り値†
成功時:変換後の数値 失敗時:0
解説†
2進数を表す文字列を整数に変換する。
使用例†
_bin = '11110'
_i = BINSTRTOI(_bin)
_i // 30 を出力(2進数 11110 = 10進数 30)
互換性†
- YAYA: 初期リリースから利用可能
- AYA: バージョン 5.8 以降
関連項目†
INSERT†
書式†
INSERT( src , pos , insert )
引数†
| Parameter | Description |
|---|---|
| src | 挿入先の元の文字列 |
| pos | 挿入位置(0=先頭)。負の値を指定すると末尾からのオフセットとして扱われる(Tc574-8 / Tc603-1以降) |
| insert | 挿入する文字列 |
戻り値†
- 成功時: 挿入後の文字列
- エラー時: VOID
解説†
文字列 src の pos で指定した位置に、文字列 insert を挿入する。位置0は文字列の先頭を表す。
pos が負の値のときは、src の文字数を足した位置に挿入する(-1 なら最後の1文字の前)。それでも負になるときは先頭に、src の文字数より大きいときは末尾に挿入する。
INSERT('abc', 1, 'X') // aXbc
INSERT('abc', -1, 'X') // abXc
INSERT('abc', 10, 'X') // abcX
INSERT('abc', -10, 'X') // Xabc
互換性†
- YAYA: 初期から利用可能
- AYA: 5.8以降
- Tc574-8 / Tc603-1: 負の位置を末尾から数え、範囲外の位置を先頭か末尾に寄せるようにした(それまではエラーで処理が中断していた)。
insertに数値を渡したときも挿入するようにした(それまでは何も挿入されなかった)
ISINTSTR†
書式†
ISINTSTR( string )
引数†
| Parameter | Description |
|---|---|
| string | 整数として解釈できるか検証する文字列 |
戻り値†
- 1: 文字列を整数として解釈できる
- 0: 文字列を整数として解釈できない
解説†
指定した文字列が整数として解釈できるかどうかを検証する。ISREALSTRと対になる関数で、整数と浮動小数点数の文字列表現を区別するのに役立つ。
互換性†
- YAYA: 初期から利用可能
- AYA: 5.8以降
関連項目†
ISREALSTR†
書式†
ISREALSTR(string)
引数†
| Parameter | Description |
|---|---|
| string | 判定対象の文字列 |
戻り値†
- 1: 実数として解釈可能
- 0: 実数として解釈不可能
解説†
与えられた文字列が実数として解釈可能かどうかを判定します。
互換性†
- YAYA: 初期バージョンより使用可能
- AYA: バージョン5.8以降で使用可能
関連項目†
REPLACE†
書式†
REPLACE( src , before , after [ , count ] )
引数†
| Parameter | Description |
|---|---|
| src | 変換対象の文字列 |
| before | 検索する部分文字列 |
| after | 置換後の部分文字列 |
| count | (省略可)置換を行う回数。0未満または省略した場合はすべての該当箇所を置換する |
戻り値†
- 成功: 置換後の文字列
- 失敗: 元の src 文字列(変更なし)
解説†
文字列の置換を行います。該当するすべての変換前文字列が置換されます。count を指定することで置換回数を制限できます。
使用例†
_tehai = '4m4m5m5m6m6m2p3p3p4p1s1s1s'
_tsumo = '4p'
_dahai = '1s'
_tehai = REPLACE(_tehai, _dahai, _tsumo, 1)
_tehai // '4m4m5m5m6m6m2p3p3p4p4p1s1s'
互換性†
- YAYA: 初期リリースから使用可能(countパラメータはTc548-1で追加)
- AYA: バージョン5.8から使用可能
関連項目†
SPLIT†
書式†
SPLIT(src, delim [, max])
引数†
| Parameter | Description |
|---|---|
| src | 分割対象の文字列(数値変数はTOSTRで変換してから渡すことを推奨) |
| delim | 区切り文字列 |
| max | 最大分割数(省略時または0で完全分割) |
戻り値†
- 成功時: 分割した文字列要素を含む汎用配列
- 失敗時: 空の配列
解説†
文字列を分割して汎用配列として返します。正規表現処理を行わないため、RE_SPLIT よりも高速です。
max を指定した場合、その数で分割を打ち切り、残りの部分は最後の要素にまとめられます。max に 1 を指定すると分割せず、ただの文字列代入になります。
使用例†
_array = SPLIT("A//B//C//D//E", "//", 3)
// 結果: ("A", "B", "C//D//E")
互換性†
- YAYA: 初期バージョンより利用可能
- AYA: 5.8以降
関連項目†
- RE_SPLIT(正規表現を使った分割)
SPLITPATH†
書式†
SPLITPATH(string)
引数†
| Parameter | Description |
|---|---|
| string | 分解対象のパス文字列 |
戻り値†
- 成功時:
(ドライブ名, パス, ファイル名本体, 拡張子)の汎用配列 - 失敗時: 0
解説†
指定したパス文字列を要素に分解して汎用配列として返します。返す配列の内容はドライブ名・パス・ファイル名本体・拡張子の4要素です。
使用例†
// 例1: Windowsの絶対パス
_i = SPLITPATH("C:\umeici\sample\readme.txt")
// 結果: "C:", "\umeici\sample\", "readme", ".txt"
// 例2: 相対パス
_j = SPLITPATH("../../../aa/bb/cc.ddd")
// 結果: "", "../../../aa/bb/", "cc", ".ddd"
互換性†
- YAYA: 初期バージョンより利用可能
- AYA: 5.8以降
STRDIGEST†
書式†
STRDIGEST(string [, type])
引数†
| Parameter | Description |
|---|---|
| string | ダイジェスト値を計算する対象の文字列 |
| type | ダイジェストの種類(下表)。省略すると MD5 |
戻り値†
- 成功時: 計算されたダイジェスト値の16進数文字列(英大文字)
- 失敗時: -1
解説†
指定した文字列のダイジェスト(ハッシュ)値を計算して返します。文字列の文字コードは内部表現(Windows 版は UTF-16、POSIX 版は UTF-32)のバイト列が使用されます。たとえば "abc" は Windows 版では 61 00 62 00 63 00 の6バイトです。
type は大文字小文字を区別せず、- _ / も無視します(SHA-256 sha_256 sha256 はどれも同じ)。知らない種類を指定すると MD5 として計算します。
ダイジェストの種類†
| type | 内容 | 長さ |
|---|---|---|
MD5 |
MD5 | 16バイト |
SHA-1 / SHA1 |
SHA-1 | 20バイト |
SHA-224 / SHA-256 / SHA-384 / SHA-512 |
SHA-2 | 28 / 32 / 48 / 64バイト |
SHA3-224 / SHA3-256 / SHA3-384 / SHA3-512 |
SHA-3 | 28 / 32 / 48 / 64バイト |
Adler-32 |
Adler-32(zlib) | 4バイト |
CRC-32 |
CRC-32(ZIP・PNG などと同じ多項式)。下位バイトから先に並べる(下の注意を参照) | 4バイト |
CRC-32B(CRC-32/ISO-HDLC) |
CRC-32 と同じ値を、一般的な表記(上位バイトから)で出す |
4バイト |
CRC-32C(CRC-32/CASTAGNOLI) |
CRC-32C(iSCSI・SCTP・ext4 など) | 4バイト |
CRC-32/BZIP2 |
CRC-32/BZIP2 | 4バイト |
CRC-32/MPEG-2 |
CRC-32/MPEG-2 | 4バイト |
CRC-32/JAMCRC(JAMCRC) |
CRC-32/JAMCRC | 4バイト |
CRC-16(CRC-16/ARC) |
CRC-16/ARC | 2バイト |
CRC-16/CCITT-FALSE(CRC-16/IBM-3740) |
CRC-16/CCITT-FALSE | 2バイト |
CRC-16/XMODEM(CRC-16/ZMODEM) |
CRC-16/XMODEM | 2バイト |
CRC-16/KERMIT(CRC-16/CCITT-TRUE) |
CRC-16/KERMIT | 2バイト |
CRC-16/MODBUS |
CRC-16/MODBUS | 2バイト |
CRC-16/X-25(CRC-16/IBM-SDLC) |
CRC-16/X-25 | 2バイト |
CRC-8(CRC-8/SMBUS) |
CRC-8 | 1バイト |
CRC-8/MAXIM(CRC-8/DOW) |
CRC-8/MAXIM(Dallas 1-Wire) | 1バイト |
CRC-64(CRC-64/XZ) |
CRC-64/XZ(xz・Go の ECMA 表) | 8バイト |
CRC-64/ECMA-182 |
CRC-64/ECMA-182 | 8バイト |
CRC の各種類の名前と定義は、CRC のカタログ(Rocksoft モデルによる一覧)に合わせています。CRC-16 と CRC-64 は、それぞれ CRC-16/ARC と CRC-64/XZ のことです。
CRC の並び順
CRC-32 だけは、従来の互換のため値の下位バイトから先に並べます(123456789 の CRC-32 は一般には CBF43926 ですが、2639F4CB になります)。一般的な表記で受け取りたいときは CRC-32B を使ってください。それ以外の CRC は、カタログと同じ一般的な表記(上位バイトから)です。
実装の確認に使える値は FDIGEST にあります。
使用例†
_h = STRDIGEST("abc", "SHA-256") // 13E228567E8249FCE53337F25D7970DE3BD68AB2653424C7B8F9FD05E33CAEDF (Windows 版)
互換性†
- YAYA: Tc568-1以降
- Tc607-1:
SHA-224/SHA-256/SHA-384/SHA-512、SHA3-*、Adler-32と、CRC-32Bほかの各種 CRC を追加。種類名の大文字小文字と-_/を無視するようにした
関連項目†
- FDIGEST(ファイルのダイジェスト計算)
STRDECODE†
書式†
STRDECODE(string [, code] [, type])
引数†
| Parameter | Description |
|---|---|
| string | デコード対象の文字列 |
| code | 変換に使う文字コードID(省略時は0)、または文字コードの名前(文字コードの名前)。知らない名前なら警告 W0012 を出して 0 を返す |
| type | デコード形式。url(URLエンコード)または base64(Base64)を指定。省略時は url |
戻り値†
- 成功時: デコードされた文字列
- 失敗時: 0
解説†
指定した文字コードとエンコード形式で文字列をデコードします。文字コードIDについては文字コードの名前を参照してください。
互換性†
- YAYA: Tc521-1以降(Tc532-1で
GETSTRURLDECODEから改名) - Tc574-8 / Tc603-1: 知らない文字コードの名前を渡すと、警告 W0012 を出して0 を返すようにした(それまでは警告を出さずに OS デフォルトとして扱っていた)
関連項目†
- STRENCODE(エンコード関数)
STRENCODE†
書式†
STRENCODE(string [, code] [, type])
引数†
| Parameter | Description |
|---|---|
| string | エンコード対象の文字列 |
| code | エンコードに使う文字コードID(省略時は0)、または文字コードの名前(文字コードの名前)。知らない名前なら警告 W0012 を出して 0 を返す |
| type | エンコード形式。url(URLエンコード)、form(スペースを + に変換するフォームエンコード)、base64(Base64)を指定。省略時は url |
戻り値†
- 成功時: エンコードされた文字列
- 失敗時: 0
解説†
指定した文字コードとエンコード形式で文字列をエンコードします。文字コードIDについては文字コードの名前を参照してください。
互換性†
- YAYA: Tc521-1以降(Tc532-1で
GETSTRURLENCODEから改名) - Tc574-8 / Tc603-1: 知らない文字コードの名前を渡すと、警告 W0012 を出して0 を返すようにした(それまでは警告を出さずに OS デフォルトとして扱っていた)
関連項目†
- STRDECODE(デコード関数)
STRFORM†
書式†
STRFORM(format [, arg ...])
引数†
| Parameter | Description |
|---|---|
| format | フォーマット文字列 |
| arg | フォーマット文字列に埋め込む引数(複数指定可) |
戻り値†
- 成功時: フォーマットされた文字列
- 失敗時: 動作は未定義
解説†
C言語の sprintf に相当するフォーマット済み文字列を返します。
フォーマット指定子は % の代わりに $ をプレフィックスとして使用します(例: $04d, $s)。各フォーマット指定子で展開される文字列は最大1024文字です。
結果を戻り値で得る点と、書式指定のプレフィックス文字が $ である点を除けば、sprintf とまったく同様に使えます。
使用例†
sprintf との比較です。
// C言語
int year = 1941;
char *warname = "太平洋";
sprintf(str, "%04d年 %s戦争勃発。", year, warname);
// 文
year = 1941
warname = "太平洋"
str = STRFORM("$04d年 $s戦争勃発。", year, warname)
// 結果: "1941年 太平洋戦争勃発。"
互換性†
- YAYA: 初期バージョンより利用可能
- AYA: 5.8以降
STRLEN†
書式†
STRLEN(string)
引数†
| Parameter | Description |
|---|---|
| string | 文字数を取得する文字列 |
戻り値†
- 成功時: 文字数(整数)
- 失敗時: 0
解説†
文字列の文字数を返します。バイト数ではなく文字数を返すため、漢字などのマルチバイト文字も1文字としてカウントされます。
互換性†
- YAYA: 初期バージョンより利用可能
- AYA: 5.8以降
関連項目†
- STRSTR(部分文字列検索)
- SUBSTR(部分文字列取得)
- GETSTRBYTES(バイト数取得)
STRSTR†
書式†
STRSTR(src, search, pos)
引数†
| Parameter | Description |
|---|---|
| src | 検索対象の文字列 |
| search | 検索する部分文字列 |
| pos | 検索開始位置(0始まり) |
戻り値†
- 見つかった場合: 部分文字列が始まる文字位置(0始まり)
- 見つからない場合: -1
解説†
文字列内の部分文字列を検索し、見つかった文字位置を返します。
互換性†
- YAYA: 初期バージョンより利用可能
- AYA: 5.8以降
関連項目†
SUBSTR†
書式†
SUBSTR(src, pos, len)
引数†
| Parameter | Description |
|---|---|
| src | 取得元の文字列 |
| pos | 取得開始位置(0始まり。負の値は末尾からのオフセット) |
| len | 取得する文字数 |
戻り値†
- 成功時: 取得した部分文字列
- pos が文字列長を超える場合: 空文字列
"" - pos + len が文字列末尾を超える場合: 末尾まで取得
- エラー時: VOID
解説†
文字列から部分文字列を取り出します。pos に負の値を指定した場合は文字列の末尾からのオフセットとして扱われます(例: -2 は末尾から2番目の文字)。
使用例†
SUBSTR("HOGE", -2, 1) // 結果: "G"(末尾から2番目の文字)
互換性†
- YAYA: 初期バージョンより利用可能
- AYA: 5.8以降(ただし負の pos 値は非対応)
関連項目†
TOBINSTR†
書式†
TOBINSTR( var )
引数†
| Parameter | Description |
|---|---|
| var | 変換する整数値 |
戻り値†
- 成功: 2進数値文字列
- 失敗: VOID
解説†
整数を2進数値文字列へ変換する。
使用例†
_i = 30
_bin = TOBINSTR( _i )
_bin // "11110" (10進数30 = 2進数11110)
互換性†
- YAYA: 初期バージョンより
- AYA: 5.8以降
- Tc574-4 / Tc602-5: 整数の最小値(-9223372036854775808)が
-だけになっていたのを修正
関連項目†
TOHEXSTR†
書式†
TOHEXSTR( var )
引数†
| Parameter | Description |
|---|---|
| var | 変換する整数値 |
戻り値†
- 成功: 16進数値文字列
- 失敗: VOID
解説†
整数を16進数値文字列へ変換する。
使用例†
_i = 30
_hex = TOHEXSTR( _i )
_hex // "1E" (10進数30 = 16進数1E)
互換性†
- YAYA: 初期バージョンより
- AYA: 5.8以降
- Tc574-4 / Tc602-5: 整数の最小値(-9223372036854775808)が
-だけになっていたのを修正
関連項目†
TOLOWER†
書式†
TOLOWER( string [ , locale ] )
引数†
| Parameter | Description |
|---|---|
| string | 変換したい文字列 |
| locale | (省略可)ロケール名。省略時はCモード(A-Zのみa-zに変換) |
戻り値†
- 成功: 変換後の小文字文字列
- 失敗: VOID
解説†
文字列中の大文字をすべて小文字に変換して返す。localeを省略した場合はCモード(A-Zのみa-zに変換)となる。
locale の書式は、setlocale で使えるロケール文字列と同じ。localeには "ja-JP" "tr_TR" "tr_TR.UTF-8" のような名前を指定する。そのロケールの規則で変換し、非ASCIIの文字(É→é、全角英字など)も変換される。トルコ語(tr-TR)では I が ı になる。"C" と "POSIX" はCモード、空文字列はOSのユーザー設定のロケールになる。GETSETTING の coreinfo.locale が返す名前も使える。
- Windows: OSのロケール名を使う。
"Japanese_Japan.932"のようなCランタイムのロケール名も使える - Linux / macOS: OSに入っているロケール(
locale -aに出るもの)が必要。tr_TRのように文字コードを省いたときは、UTF-8版を先に探す - 他の処理や、プロセスのロケールには影響しない
使えないロケールを指定すると、警告 W0012(GETLASTERROR は 12)を出し、Cモードで変換した結果を返す。
使用例†
_str = 'sAkuRa'
_str = TOLOWER( _str )
_str // 'sakura'
互換性†
- YAYA: 初期バージョンより(localeパラメータはTc569-5以降)
- Tc606-1: localeの扱いを変更。ロケールは
ja-JPのような名前で指定でき、プロセスのロケールを切り替えずに変換する。使えないロケールは警告 W0012 を出してCモードで変換する(以前は警告なしで、そのときのロケールのまま変換していた) - AYA: 5.8以降
関連項目†
TOUPPER†
書式†
TOUPPER( string [ , locale ] )
引数†
| Parameter | Description |
|---|---|
| string | 変換したい文字列 |
| locale | (省略可)ロケール名。省略時はCモード(a-zのみA-Zに変換) |
戻り値†
- 成功: 変換後の大文字文字列
- 失敗: VOID
解説†
文字列中の小文字をすべて大文字に変換して返す。localeを省略した場合はCモード(a-zのみA-Zに変換)となる。
locale の書式は、setlocale で使えるロケール文字列と同じ。localeには "ja-JP" "tr_TR" "tr_TR.UTF-8" のような名前を指定する。そのロケールの規則で変換し、非ASCIIの文字(é→É、全角英字など)も変換される。トルコ語(tr-TR)では i が İ になる。"C" と "POSIX" はCモード、空文字列はOSのユーザー設定のロケールになる。GETSETTING の coreinfo.locale が返す名前も使える。
- Windows: OSのロケール名を使う。
"Japanese_Japan.932"のようなCランタイムのロケール名も使える - Linux / macOS: OSに入っているロケール(
locale -aに出るもの)が必要。tr_TRのように文字コードを省いたときは、UTF-8版を先に探す - 他の処理や、プロセスのロケールには影響しない
使えないロケールを指定すると、警告 W0012(GETLASTERROR は 12)を出し、Cモードで変換した結果を返す。
使用例†
_str = 'sAkuRa'
_str = TOUPPER( _str )
_str // 'SAKURA'
互換性†
- YAYA: 初期バージョンより(localeパラメータはTc569-5以降)
- Tc606-1: localeの扱いを変更。ロケールは
ja-JPのような名前で指定でき、プロセスのロケールを切り替えずに変換する。使えないロケールは警告 W0012 を出してCモードで変換する(以前は警告なしで、そのときのロケールのまま変換していた) - AYA: 5.8以降
関連項目†
TRANSLATE†
書式†
TRANSLATE( text, format_from, format_to )
引数†
| Parameter | Description |
|---|---|
| text | 置換対象の文字列 |
| format_from | 置換前の文字リスト(書式あり、後述) |
| format_to | 置換後の文字リスト。空文字列を指定すると削除 |
戻り値†
- 成功: 置換後の文字列
- 失敗: -1
解説†
文字列を文字単位で高速に置換する。Perlのtr///(オプションなし)相当の機能を提供する。
書式†
単純な列挙: 文字を1対1でマッピングする。リストにない文字は変更されない。
TRANSLATE('ぬるぽガッ', 'ぽガ', 'りゴ') // 'ぬるりゴッ'
TRANSLATE('あああいいいううう', 'あい', 'おえ') // 'おおおえええううう'
範囲指定: 「-」を使って文字コードの範囲を指定して一括置換する。使用する文字コードは UCS-2(Unicode)なので、IME の文字パレットを Unicode モードに切り替えて確認するとよい。
TRANSLATE('123456789', '1-9', '①-⑨') // '①②③④⑤⑥⑦⑧⑨'
エスケープ: \- でリテラルのハイフン、\\ でリテラルのバックスラッシュを指定する。
TRANSLATE('\-\-\-', '\\', '\-') // '------'
削除: 第3引数を空文字列にすると、該当文字を削除する。
TRANSLATE('46cm三連装砲', '0-9a-z', '') // '三連装砲'
使用例†
ひらがなをカタカナ、カタカナをひらがなに変換する。
_wokyu = TRANSLATE('ティータイムは大事にしないとネー', 'ぁ-ゖァ-ヶ', 'ァ-ヶぁ-ゖ')
// _wokyu の中身 = てぃーたいむハ大事ニシナイトねー
Unicode 表でカタカナとひらがなが重なる範囲「ァ-ヶ」を指定している。辞書を Shift_JIS で書いている場合、「ゖ」が文字化けするので、その場合は次のように書く。
_wokyu = TRANSLATE('ティータイムは大事にしないとネー', 'ぁ-んァ-ン', 'ァ-ンぁ-ん')
互換性†
- YAYA: Tc546-1 以降
- Tc546-2: エスケープシーケンスを追加
- Tc547-1: 削除処理(第3引数を空文字列にする)を追加
関連項目†
ZEN2HAN†
書式†
ZEN2HAN( src [ , type ] )
引数†
| Parameter | Description |
|---|---|
| src | 変換する文字列 |
| type | (省略可)変換する文字種をカンマ区切りで指定。省略時はすべて変換 |
typeに指定できる値†
| 値 | 対象文字種 |
|---|---|
number |
数字(0〜9) |
alphabet |
英字 |
symbol |
記号・句読点 |
kana |
カタカナおよび句読点 |
戻り値†
- 成功: 変換後の文字列
- 失敗: VOID
解説†
文字列中の全角英数字・カタカナを半角に変換する。typeパラメータで変換対象の文字種を絞り込むことができる。
使用例†
ZEN2HAN('2007ABCアイウエオ', 'number,alphabet')
// "2007ABCアイウエオ" (数字と英字のみ変換、カタカナは変換しない)
互換性†
- YAYA: TC513-901 以降