初心者のFileMaker pro Q&A (旧掲示板)

みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。

1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)

You are not logged in.

Announcement

新しい掲示板は、こちら:https://fm-aid.com/forum/t/filemaker


#1 2015-11-17 18:09:00

tokyo-taro
Guest

定型文、特定文字列の抽出について

以下のような定型文の一部(×表示部分)を
項目それぞれについて抽出したいのですが
どのような関数を用いれば良いでしょうか。

初歩的な質問で申し訳ありませんがご教授下さい。
よろしくお願いします。


以下定型文
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
【場所  】
    場所:×××

【連絡先】
    連絡先 : ×××

【お菓子】
    ポッキー : ×××

【飲み物】
    紅茶 : ×××

【食器】
    コップ : ×××

#2 2015-11-17 20:00:00

位相学
Guest

Re: 定型文、特定文字列の抽出について

行番号を指定して、コロンの後を取得する。
Replace ( GetValue ( 定型文 ; n ) ; 1 ; Position ( 定型文 ; ":" ; 1 ; 1 ) ; "" )

#3 2015-11-17 20:25:52

tokyo-taro
Guest

Re: 定型文、特定文字列の抽出について

位相学さん

ありがとうございます。
しかしながら、うまくいきません・・・。

なぜでしょう・・・。

#4 2015-11-17 21:04:23

位相学
Guest

Re: 定型文、特定文字列の抽出について

n のとこを数字に置き換えてますか?場所なら2行目だから2,連絡先なら5,など。

#5 2015-11-17 21:22:27

tokyo-taro
Guest

Re: 定型文、特定文字列の抽出について

置き換えてます・・・。

スペースとか半角/全角など関係しますでしょうか・・・?

#6 2015-11-18 09:22:09

旅人
Member

Re: 定型文、特定文字列の抽出について

定型文に空白行が無いのなら
Let ( 変数=Substitute ( 定型文 ; [" : " ; ¶];[":" ;¶]) ;
GetValue ( 変数 ; 3 ) & ¶ & GetValue (変数 ; 6 ) & ¶ & GetValue ( 変数 ; 9 ) &¶ &  GetValue ( 変数 ; 12 ))

Offline

#7 2015-11-18 09:35:10

tokyo-taro
Guest

Re: 定型文、特定文字列の抽出について

旅人さん
ありがとうございます。

定型文自体の改行やスペース、空白行の変更などは出来ず・・・
定型文には、空白行が存在します。

#8 2015-11-18 10:11:42

旅人
Member

Re: 定型文、特定文字列の抽出について

連続する空白行が無い場合
Let ( 変数=Substitute ( 定型文 ;[¶&¶ ; ¶] ; [" : " ; ¶] ; [":" ;¶]) ;
GetValue ( 変数 ; 3 ) & ¶ & GetValue (変数 ; 6 ) & ¶ & GetValue ( 変数 ; 9 ) &¶ &  GetValue ( 変数 ; 12 )・・・・)

Last edited by 旅人 (2015-11-18 10:18:03)

Offline

#9 2015-11-19 21:42:30

tokyo-taro
Guest

Re: 定型文、特定文字列の抽出について

複雑な式ですね・・・。

コロン以下をそれぞれ別のフィールに抽出したい場合は
教えて頂いた式の一部を用いれば良いですか・・・?

初心者すぎてすみません・・・。

#10 2015-11-19 23:15:41

Shin
Member

Re: 定型文、特定文字列の抽出について

項目毎に取り出す、という事ならば、【】で括られている項目名を titl1 に、小項目名を titl2 に設定する事にして、

Let (
[
 txt = Substitute ( 定型文 ; " : " ; ":" ) ;
 titl1 = "お菓子" ;
 titl2 = "ポッキー" ;
 tpos0 = Position ( txt ; titl1 ; 1 ; 1 ) ;
 tpos1 = Position ( txt ; titl2 ; tpos0 + 1 ; 1 ) ;
 pos1 = Position ( txt ; ":" ; tpos1 ; 1 ) ;
 pos2 = Position ( txt ; "¶" ; tpos1 ; 1 ) 
] ;
 Middle ( txt ; pos1 + 1 ; pos2 - pos1 - 1 )
)

でいいでしょう。【飲み物】に、ポッキー: が現れる様な事が無いのでしたら、もう少し簡単になります。
adv版をお持ちでしたら、これをカスタム関数にしておけば、引数でコントロールできますので、楽でしょう。
最初に定型文を置換処理しているのですが、コロンに、全角のものと半角のスペース・コロン・スペースが混在していますが、統一されていないのでしょうか

Last edited by Shin (2015-11-20 09:04:45)

Offline

#11 2015-11-20 00:03:43

旅人
Member

Re: 定型文、特定文字列の抽出について

例では場所の後ろのコロンだけ違いますよね。
コロンを統一すると別フィールドの1個目は
GetValue ( Substitute ( 定型文 ;[¶&¶ ; ¶] ; [" : " ; ¶] ) ; 3 ) )
2個目も同様に。

Offline

#12 2015-11-20 00:45:18

Hiro
Member

Re: 定型文、特定文字列の抽出について

お久し振りの投稿です。

計算結果は、改行文字列で返します。
×××
×××
×××
×××
×××

Let([
  //▼引数を設定
  $txt=定型文フィールド;
    $txt=Substitute($txt;[":";":"];[" : ";":"]);
  $n=PatternCount($txt;"¶")+1;
  $i=0;
  $res="";
  //▼関数式を定義
  $fnc=
    "Case(
        $i=$n; $res;
        Let([
            $i=$i+1;
            $val=GetValue($txt;$i);
            $itm=GetValue(Substitute($val;[\":\";\"\¶\"]);2);
            $res=List($res;$itm)
        ]; Evaluate($fnc))
    )"
];
  //▼定義式を実行
    Evaluate($fnc)
)

Offline

#13 2015-11-20 21:18:04

tokyo-taro
Guest

Re: 定型文、特定文字列の抽出について

皆様、色々とアドバイスありがとうございます。
教えて頂いた方法をいくつか検討してみます。

Registered users online in this topic: 0, guests: 1
[Bot] ClaudeBot

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.009 seconds, 9 queries executed - Memory usage: 524.85 KiB (Peak: 545.39 KiB) ]