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

ModList 関数

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

概要

改行区切りのテキストの中の値に対して接頭/接尾辞の追加、値自体の置換を行う。

構文

ModList ( Lists; Keyword; Add; Mode; Cnt )

引数

引数名タイプ備考
Listsテキスト あ¶ういう¶う¶え¶お¶
Keywordテキスト 
Addテキスト 追加テキスト!
Mode数字1,2,3のどれかをセット2
Cnt数字固定で1をセットする1

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

ModList ( "あ¶ういう¶う¶え¶お¶" ; "う" ; "追加テキスト!" ; 2 ; 1 )

結果


ういう
う追加テキスト!


/*
名  称:
ModList ( Lists; Keyword; Add; Mode; Cnt )
概  要:
 改行区切りのテキストの中の値に対して接頭/接尾辞の追加、値自体の置換を行う関数。
 第一引数Lists:改行区切りの文字列。最後の文字も改行で終わっている事。
 第二引数Keywords:キーワード。キーワード中に改行は含まない事。
 第三引数Add:キーワードに対し追加または置換
 第四引数Mode:動作モード
       1=キーワードに接頭辞として第四引数を追加
       2=キーワードに接尾辞として第四引数を追加
       3=キーワードを第四引数に置換
 第五引数Cnt:カウンタ。呼び出し時には1をセットする事
使用例 :
 
ModList ( "あ¶い¶う¶え¶お¶"; "う"; "追加テキスト!"; 1; 1 )
結果例 :
 あ
 い
 追加テキスト!う
 え
 お
 最終更新日:2008/11/07
*/


Let
( [
    Lists =
If ( Right ( Lists; 1 ) "¶"; Lists & "¶"; Lists );  
    Line =
MiddleValues ( Lists ; Cnt ; 1 );
    NextData =
MiddleValues ( Lists ; Cnt ; PatternCount ( Lists ; "¶" ) )
];

Case
(
Mode=1;

If
(
    Cnt
PatternCount ( Lists ; "¶" );
  
Case (
      
PatternCount ( Line ; "¶" & Keyword & "¶" ) > 0;
      
Substitute ( Line ; Keyword ; Add & Keyword ) & ModList ( Lists; Keyword; Add; 1; Cnt + 1 );
      
Position ( Line ; Keyword & "¶" ; 1 ; 1 ) = 1;
      
Substitute ( Line ; Keyword ; Add & Keyword ) & ModList ( Lists; Keyword; Add; 1; Cnt + 1 );
        Line &
ModList ( Lists; Keyword; Add; 1; Cnt + 1 )
    );
    Line
);
Mode=2;

If
(
    Cnt
PatternCount ( Lists ; "¶" );
  
Case (
      
PatternCount ( Line ; "¶" & Keyword & "¶" ) > 0;
      
Substitute ( Line ; Keyword ;  Keyword & Add ) & ModList ( Lists; Keyword; Add; 2; Cnt + 1 );
      
Position ( Line ; Keyword & "¶" ; 1 ; 1 ) = 1;
      
Substitute ( Line ; Keyword ; Keyword & Add ) & ModList ( Lists; Keyword; Add; 2; Cnt + 1 );
        Line &
ModList ( Lists; Keyword; Add; 2; Cnt + 1 )
    );
    Line
);
Mode=3;

Case
(
      
Position ( Line ; Keyword & "¶" ; 1 ; 1 ) = 1;
      
Substitute ( Line ; Keyword & "¶"  ; Add&"¶" );

      
Position ( Line ; Keyword & "¶" ; 1 ; 1 ) > 1;
      
Substitute ( Line ; "¶" & Keyword & "¶" ; Add&"¶" );
);  
"Error!"
)
)

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

詳細説明

改行区切りのテキストの中の値に対して接頭/接尾辞の追加、値自体の置換を行う。

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

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

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

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