http://FMPro.info  FileMaker Pro 関連総合ポータルサイト

Ext_Substitute 関数

カテゴリー : テキスト処理
計算結果のデータタイプ : テキスト
対応FileMakerバージョン : 対応 7  対応 8  対応 8.5  対応 9  対応 10  対応 11  未対応 12  未対応 13  未対応 14  未対応 15
作者 : 給前悟郎 株式会社ジェネコム

概要

Substitute関数を機能拡張し、複数の置換条件を指定可能とします

構文

Ext_Substitute ( 元テキスト ; 検索・置換テキスト )

引数

引数名タイプ備考
元テキストテキスト fooならhoge
検索・置換テキストテキスト"検索txt1/置換txt1;検索txt2/置換txt2; ・・・"foo/bar;hoge/ほげ

別のウィンドウで、引数の値を変更してテストすることが出来ます

Ext_Substitute ( "fooならhoge" ; "foo/bar;hoge/ほげ" )

結果

barならほげ

/*Substitute関数を機能拡張し、複数の置換条件を指定可能とします*/
Let
(
    [
    pos = Position ( 検索・置換テキスト ; ";" ; 1 ; 1 );
    pos2 = Position ( 検索・置換テキスト ; "/" ; 1 ; 1 );
    text = 元テキスト;
    keyword = 検索・置換テキスト
    ];
    Case (
        // 置換条件が複数ある
        PatternCount ( keyword ; ";" ) > 0;
            
Ext_Substitute (
            
    Substitute (
                    text;
                
    Middle ( keyword ; 1 ; pos2 - 1 );
                
    Middle ( keyword ; pos2 + 1 ; pos - pos2 -1 )
                );
            
    Middle ( keyword ; pos + 1 ; 9999999 )
            ) ;
        // 置換条件は一個だけ
        PatternCount ( keyword ; ";" ) = 0 ;
            Substitute (
                text ;
            
    Middle ( keyword ; 1 ; pos2 - 1 ) ;
            
    Middle ( keyword ; pos2 + 1 ; 9999999 )
            )
    )
)

エンコードは Unicode (UTF-8)、改行タイプは LF (Unix) 形式のテキストとして保存します。
テキストエディタで正常に開かない場合は、エンコードを指定してファイルを開くようにしてください。

詳細説明

例えばFileMakerからメールを送信する時等に、本文の部分はグローバルフィールドなどで作っておき、あとから計算式で差し込みたい氏名や商品名等を置換すると言った方法をとる事はよくあることです。そうするとメール本文は計算式で組み立てられる場合と違い、簡単に修正できるからです。
しかし、この方法を用いる時には置換を行う関数Substitute()がいくつも入れ子になり計算式の見通しが悪くなりがちです。今回のカスタム関数はそれを単純化するために作成しました。このカスタム関数を使えば、例えばあるテキストの中の「A」「B」「C」をそれぞれ「あ」「い」「う」に置き換えるのにSubstitute関数を3つも入れ子にする必要はなく、ただ Ext_Substitute(テキスト; "A/あ;B/い;C/う") と書くだけでOKです。

この関数が使用する他のカスタム関数

この関数を使用する他のカスタム関数

注意:ここで紹介されているカスタム関数をご自分のシステムに組み込んだ場合に発生した問題についてはFMPro.infoは責任を負いません。

Copyright © 2004-2009 FMPro.info All Rights Reserved.