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

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

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

You are not logged in.

Announcement

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


#1 2016-01-05 14:43:34

さくら
Guest

文字列の置換

Win7 FMADV14 です。


文字列の置換で思いつかないため、
質問させていただきます。

【置換前】
aaaaaaaaaaaaaaaaaaaaaaaaaaaahttp://example.com/111111/aaaaaaaaaaaaahttp://example.com/222222/aaaaaa

【置換後】
aaaaaaaaaaaaaaaaaaaaaaaaaaaahttp://example2.com/aaaaaaaaaaaaahttp://example2.com/aaaaaa

としたいのですが、いい方法は有りますか?

aaa 部分はランダム文字列で長さも変動。
111111 部分は6文字で変動文字。

計算フィールドで置換できたらベストです。

よろしくお願いいたします。

#2 2016-01-05 15:24:31

tim
Guest

Re: 文字列の置換

置換部分は2か所で固定ですか?

#3 2016-01-05 15:52:47

さくら
Guest

Re: 文字列の置換

tim様

固定ではありません。
0~9箇所程度ございます。

フィールドごとにaaaの部分の長さも違います。
よろしくお願いいたします。

#4 2016-01-06 01:06:20

Hiro
Member

Re: 文字列の置換

ループ計算式の例

Let([
  $arg=文字列フィールド;
  $arg=Substitute($arg;["http://";"¶http:||"]);
  $n=ValueCount($arg);
  $i=0;
  $res="";
  $fnc="Case($i=$n; $res;
    Let([
      $i=$i+1;
      $itm=GetValue($arg; $i);
      $itm=Substitute($itm;[\"/\";\"\¶/\"]);
      $itm=GetValue($itm;1)&GetValue($itm;3);
      $itm=Substitute($itm;[\".\";\"2.\"];[\"|\";\"/\"]);
      $res=$res & $itm
    ]; Evaluate($fnc))
   )"
];
  Evaluate($fnc)
)

Offline

#5 2016-01-06 11:31:51

さくら
Guest

Re: 文字列の置換

ご丁寧にありがとうございました。

上手にできなかったため、別の方法を考えてみます。

#6 2016-01-06 17:05:25

チポ
Member

Re: 文字列の置換

Hiroさんの式でできます。
計算フィールドの計算式ですよ。



もう一つの式

Let ( [
$t = Substitute ( テキスト ; "://example" ; "://example2" ) ;
$c = 0 ;
$p = 0 ;
$co = PatternCount ( テキスト ; ".com/" ) ;
$r =
"Case ( $co = $c ; $t ;
           Let ( [
                  $c = $c + 1 ;
                  $p = Position ( $t ; \".com/\" ; 1 ; $c ) + 4  ;
                  $t = Replace ( $t ; $p ; 7 ; \"\" ) ] ;
            Evaluate ( $r ) ) )"
] ;
Evaluate ( $r ) )

「.com/」の位置を求め、それに続く7文字を消去
これを繰り返します。
こちらの方が分りやすいかも。。

Offline

#7 2016-12-05 21:53:22

シャチ
Member

Re: 文字列の置換

数字を消して example を example2 に変換するだけなら

Substitute ( テキスト ; ["1" ; ""]  ; ["2" ; ""]  ; ["3" ; ""] ; ["4" ; ""] ; ["5" ; ""]  ; ["6" ; ""]  ; ["7" ; ""]  ; ["8" ; ""]  ; ["9" ; ""]   ; ["0" ; ""] ; ["example." ; "example2."])

でできるけど、そう単純ではないのか?

Offline

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

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.007 seconds, 9 queries executed - Memory usage: 509.09 KiB (Peak: 515.84 KiB) ]