version 11.1 (Modified)
Replace string (source; oldString; newString{; howMany}{; *}) 文字列
| 引数 | 型 | 説明 | |
| source | 文字列 | 元の文字列 | |
| oldString | 文字列 | 置き換対象の文字列 | |
| newString | 文字列 | 置き換え後の文字列 | |
| (空文字の場合オカレンスは削除) | |||
| howMany | 数値 | 置き換え数 | |
| 省略時、すべてのオカレンスを置き換え | |||
| * | * | 渡した場合: 文字コードに基づく評価 | |
| 戻り値 | 文字列 | 結果の文字列 |
説明
Replace stringは、sourceに存在するすべてのoldStringをnewStringでhowMany回数だけ置き換えます。
newStringが空の文字列 ("") の場合は、Replace stringはsourceの中のoldStringをすべて削除します。
howManyを指定した場合、Replace string関数はsourceの最初の文字から探して、その回数分だけoldStringを置き換えます。指定しない場合、発見したoldStringをすべて置き換えます。
oldStringが空の文字列の場合は、Replace stringはなにも変更せず、元の文字列を返します。
デフォルトでこのコマンドはグローバルな比較を行い、言語上の特性と、1つ以上の文字で記述される文字 (例 a = ae) を考慮に入れます。他方、発音区分符号 (a=A, a=a 等) 無視され、改行などの制御コードは考慮されません (Unicodeの仕様)。
この動作を変更するには、最後の引数にアスタリスク * を渡します。この場合、比較は文字コードベースで行われます。* 引数は以下のようなケースで必要となります:
・改行やChar(1)など特別な文字を考慮に入れたい場合、
・文字の評価で大文字小文字の区別やアクセント文字を考慮したい場合 (a#A, a#a 等)。
このモードでは、単語が書かれた方法のバリエーションが評価されないことに留意してください。
例題
1. Replace stringの使用例を次に示します。結果を変数vtResultに代入します。コメントは、変数vtResultに代入される内容についての説明です。
vtResult:=Replace string("Willow";" ll";"d") `Resultは"Widow"
vtResult:=Replace string("Shout"; "o";"") `Resultは"Shut"
vtResult:=Replace string(vtOtherVar;Char(Tab);",";*) `vtOtherVar の中の全のタブをコンマ(.) に置き換える
2. 以下の例は、vtResultのテキストからキャリッジリターンとタブを取り除きます。
vtResult:=Replace string(Replace string(vtResult;Char(Carriage return);"";*);Char(Tab);"";*)
3. この例では発音区分符号を区別するために、* 引数の使用する例を示します。
vtResult:=Replace string("Creme brulee";"Brulee";"caramel") `Resultは "Creme caramel"
vtResult:=Replace string("Creme brulee";"Brulee";"caramel";*) `Resultは "Creme brulee"
参照
Change string, Delete string, Insert string.