文字列操作†

28 個の関数。

ANY†

書式†

ANY(var)

引数†

Parameter Description
var ランダムに選択する対象。文字列・汎用配列・整数・実数のいずれか

戻り値†

成功時:ランダムに選ばれた要素のひとつ 失敗時:VOID

文字列を簡易配列として扱う場合はその中からランダムに1要素を返す。変数で与えた場合は、その変数のデリミタが考慮される。汎用配列の場合もランダムに1要素を返す。数値型(整数・実数)の場合はその値をそのまま返す。選ばれた要素のインデックスは LSO 関数で取得できる。

使用例†

_array = ('さくら','まゆら','ねここ')
ANY(_array)  // 「まゆら」などランダムな要素を返す

_str = 'さくら,まゆら,ねここ'
ANY(_str)    // 「ねここ」などランダムな要素を返す

LSO          // 2(「ねここ」のインデックス)を返す

互換性†

関連項目†


CHR†

書式†

CHR( val [, val ... ] )

引数†

Parameter Description
val UCS-2の文字コード値(数値)。複数指定可能

戻り値†

成功時:変換された文字または文字列(引数の数に等しい長さの文字列) 失敗時:VOID

解説†

UCS-2 コードを数値で指定すると、対応する 1 文字を文字列で返す。数値は複数指定でき、その場合は引数の数だけの長さの文字列を返す(汎用配列を渡せば文字列が返る)。UCS-2 コードは ASCII の範囲では ASCII コードと互換性がある。

使用例†

CHR(65)      // "A" を返す
CHR(20282)   // "伺" を返す

互換性†

関連項目†


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 を返す

互換性†

関連項目†


CUTSPACE†

書式†

CUTSPACE(string)

引数†

Parameter Description
string 処理対象の文字列

戻り値†

成功時:文字列の先頭と末尾の空白文字(半角空白、全角空白、タブ)を除去した文字列 失敗時:VOID

文字列の両端にある空白文字を除去する。内部の空白(単語間)は保持される。

使用例†

CUTSPACE(' さくら  まゆら   ') // 「さくら  まゆら」を返す

互換性†


ERASE†

書式†

ERASE( src, pos, len )

引数†

Parameter Description
src 削除対象の文字列
pos 削除開始位置(0が先頭)。負の値を指定すると末尾からのオフセットとして扱われる。
len 削除する文字数。文字列の総文字数を超えた場合は空文字列を返す。

戻り値†

削除後の文字列。削除長が文字列全体を超える場合は空文字列を返す。

解説†

文字列の指定した部分を削除する。

使用例†

_str = 'さくらまゆらねここ'
ERASE( _str, 2, 6 ) // 「さくこ」を返す

互換性†

関連項目†


GETSTRBYTES†

書式†

GETSTRBYTES( string [ , code ] )

引数†

Parameter Description
string バイト数を計算する対象の文字列
code 文字コードID(省略時は0)、または文字コードの名前(文字コードの名前)。エンコードを指定してバイト数を計算する。知らない名前なら警告 W0012 を出して 0 を返す

戻り値†

解説†

「文字列を格納するのに必要なバイト数」を計算する関数。文字エンコードごとのメモリ使用量を調べることができる。

互換性†

関連項目†


HAN2ZEN†

書式†

HAN2ZEN( src [ , type ] )

引数†

Parameter Description
src 変換対象の文字列
type (省略可)変換する文字種をカンマ区切りで指定。省略時は全種類を変換する

type に指定できる値:

値 対象
number 数字(0〜9)
alphabet アルファベット
symbol 記号など
kana カタカナ・句読点等

戻り値†

解説†

文字列内の半角英文字・数字・カタカナを全角に変換する。type で変換対象の文字種を絞り込むことができる。

使用例†

_result = HAN2ZEN('2007ABC', 'number,alphabet')
// 結果: "2007ABC"

互換性†

関連項目†


HEXSTRTOI†

書式†

HEXSTRTOI( string )

引数†

Parameter Description
string 変換対象の16進数値文字列

戻り値†

解説†

16進数値文字列を整数へ変換する。先頭に 0x プレフィックスがある場合は無視する。

使用例†

_hex = '1E'
_i = HEXSTRTOI( _hex )
// _i は 30(16進数 1E = 10進数 30)

互換性†

関連項目†


BINSTRTOI†

書式†

BINSTRTOI(string)

引数†

Parameter Description
string 変換する2進数の文字列

戻り値†

成功時:変換後の数値 失敗時:0

解説†

2進数を表す文字列を整数に変換する。

使用例†

_bin = '11110'
_i = BINSTRTOI(_bin)
_i // 30 を出力(2進数 11110 = 10進数 30)

互換性†

関連項目†


INSERT†

書式†

INSERT( src , pos , insert )

引数†

Parameter Description
src 挿入先の元の文字列
pos 挿入位置(0=先頭)。負の値を指定すると末尾からのオフセットとして扱われる(Tc574-8 / Tc603-1以降)
insert 挿入する文字列

戻り値†

解説†

文字列 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

互換性†


ISINTSTR†

書式†

ISINTSTR( string )

引数†

Parameter Description
string 整数として解釈できるか検証する文字列

戻り値†

解説†

指定した文字列が整数として解釈できるかどうかを検証する。ISREALSTRと対になる関数で、整数と浮動小数点数の文字列表現を区別するのに役立つ。

互換性†

関連項目†


ISREALSTR†

書式†

ISREALSTR(string)

引数†

Parameter Description
string 判定対象の文字列

戻り値†

解説†

与えられた文字列が実数として解釈可能かどうかを判定します。

互換性†

関連項目†


REPLACE†

書式†

REPLACE( src , before , after [ , count ] )

引数†

Parameter Description
src 変換対象の文字列
before 検索する部分文字列
after 置換後の部分文字列
count (省略可)置換を行う回数。0未満または省略した場合はすべての該当箇所を置換する

戻り値†

解説†

文字列の置換を行います。該当するすべての変換前文字列が置換されます。count を指定することで置換回数を制限できます。

使用例†

_tehai = '4m4m5m5m6m6m2p3p3p4p1s1s1s'
_tsumo = '4p'
_dahai = '1s'
_tehai = REPLACE(_tehai, _dahai, _tsumo, 1)
_tehai // '4m4m5m5m6m6m2p3p3p4p4p1s1s'

互換性†

関連項目†


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")

互換性†

関連項目†


SPLITPATH†

書式†

SPLITPATH(string)

引数†

Parameter Description
string 分解対象のパス文字列

戻り値†

解説†

指定したパス文字列を要素に分解して汎用配列として返します。返す配列の内容はドライブ名・パス・ファイル名本体・拡張子の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"

互換性†


STRDIGEST†

書式†

STRDIGEST(string [, type])

引数†

Parameter Description
string ダイジェスト値を計算する対象の文字列
type ダイジェストの種類(下表)。省略すると MD5

戻り値†

解説†

指定した文字列のダイジェスト(ハッシュ)値を計算して返します。文字列の文字コードは内部表現(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 版)

互換性†

関連項目†


STRDECODE†

書式†

STRDECODE(string [, code] [, type])

引数†

Parameter Description
string デコード対象の文字列
code 変換に使う文字コードID(省略時は0)、または文字コードの名前(文字コードの名前)。知らない名前なら警告 W0012 を出して 0 を返す
type デコード形式。url(URLエンコード)または base64(Base64)を指定。省略時は url

戻り値†

解説†

指定した文字コードとエンコード形式で文字列をデコードします。文字コードIDについては文字コードの名前を参照してください。

互換性†

関連項目†


STRENCODE†

書式†

STRENCODE(string [, code] [, type])

引数†

Parameter Description
string エンコード対象の文字列
code エンコードに使う文字コードID(省略時は0)、または文字コードの名前(文字コードの名前)。知らない名前なら警告 W0012 を出して 0 を返す
type エンコード形式。url(URLエンコード)、form(スペースを + に変換するフォームエンコード)、base64(Base64)を指定。省略時は url

戻り値†

解説†

指定した文字コードとエンコード形式で文字列をエンコードします。文字コードIDについては文字コードの名前を参照してください。

互換性†

関連項目†


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年 太平洋戦争勃発。"

互換性†


STRLEN†

書式†

STRLEN(string)

引数†

Parameter Description
string 文字数を取得する文字列

戻り値†

解説†

文字列の文字数を返します。バイト数ではなく文字数を返すため、漢字などのマルチバイト文字も1文字としてカウントされます。

互換性†

関連項目†


STRSTR†

書式†

STRSTR(src, search, pos)

引数†

Parameter Description
src 検索対象の文字列
search 検索する部分文字列
pos 検索開始位置(0始まり)

戻り値†

解説†

文字列内の部分文字列を検索し、見つかった文字位置を返します。

互換性†

関連項目†


SUBSTR†

書式†

SUBSTR(src, pos, len)

引数†

Parameter Description
src 取得元の文字列
pos 取得開始位置(0始まり。負の値は末尾からのオフセット)
len 取得する文字数

戻り値†

解説†

文字列から部分文字列を取り出します。pos に負の値を指定した場合は文字列の末尾からのオフセットとして扱われます(例: -2 は末尾から2番目の文字)。

使用例†

SUBSTR("HOGE", -2, 1)  // 結果: "G"(末尾から2番目の文字)

互換性†

関連項目†


TOBINSTR†

書式†

TOBINSTR( var )

引数†

Parameter Description
var 変換する整数値

戻り値†

解説†

整数を2進数値文字列へ変換する。

使用例†

_i = 30
_bin = TOBINSTR( _i )
_bin // "11110" (10進数30 = 2進数11110)

互換性†

関連項目†


TOHEXSTR†

書式†

TOHEXSTR( var )

引数†

Parameter Description
var 変換する整数値

戻り値†

解説†

整数を16進数値文字列へ変換する。

使用例†

_i = 30
_hex = TOHEXSTR( _i )
_hex // "1E" (10進数30 = 16進数1E)

互換性†

関連項目†


TOLOWER†

書式†

TOLOWER( string [ , locale ] )

引数†

Parameter Description
string 変換したい文字列
locale (省略可)ロケール名。省略時はCモード(A-Zのみa-zに変換)

戻り値†

解説†

文字列中の大文字をすべて小文字に変換して返す。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 が返す名前も使える。

使えないロケールを指定すると、警告 W0012(GETLASTERROR は 12)を出し、Cモードで変換した結果を返す。

使用例†

_str = 'sAkuRa'
_str = TOLOWER( _str )
_str // 'sakura'

互換性†

関連項目†


TOUPPER†

書式†

TOUPPER( string [ , locale ] )

引数†

Parameter Description
string 変換したい文字列
locale (省略可)ロケール名。省略時はCモード(a-zのみA-Zに変換)

戻り値†

解説†

文字列中の小文字をすべて大文字に変換して返す。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 が返す名前も使える。

使えないロケールを指定すると、警告 W0012(GETLASTERROR は 12)を出し、Cモードで変換した結果を返す。

使用例†

_str = 'sAkuRa'
_str = TOUPPER( _str )
_str // 'SAKURA'

互換性†

関連項目†


TRANSLATE†

書式†

TRANSLATE( text, format_from, format_to )

引数†

Parameter Description
text 置換対象の文字列
format_from 置換前の文字リスト(書式あり、後述)
format_to 置換後の文字リスト。空文字列を指定すると削除

戻り値†

解説†

文字列を文字単位で高速に置換する。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('ティータイムは大事にしないとネー', 'ぁ-んァ-ン', 'ァ-ンぁ-ん')

互換性†

関連項目†


ZEN2HAN†

書式†

ZEN2HAN( src [ , type ] )

引数†

Parameter Description
src 変換する文字列
type (省略可)変換する文字種をカンマ区切りで指定。省略時はすべて変換
typeに指定できる値†
値 対象文字種
number 数字(0〜9)
alphabet 英字
symbol 記号・句読点
kana カタカナおよび句読点

戻り値†

解説†

文字列中の全角英数字・カタカナを半角に変換する。typeパラメータで変換対象の文字種を絞り込むことができる。

使用例†

ZEN2HAN('2007ABCアイウエオ', 'number,alphabet')
// "2007ABCアイウエオ" (数字と英字のみ変換、カタカナは変換しない)

互換性†

関連項目†