みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
Win7 FMADV14 です。
文字列の置換で思いつかないため、
質問させていただきます。
【置換前】
aaaaaaaaaaaaaaaaaaaaaaaaaaaahttp://example.com/111111/aaaaaaaaaaaaahttp://example.com/222222/aaaaaa
【置換後】
aaaaaaaaaaaaaaaaaaaaaaaaaaaahttp://example2.com/aaaaaaaaaaaaahttp://example2.com/aaaaaa
としたいのですが、いい方法は有りますか?
aaa 部分はランダム文字列で長さも変動。
111111 部分は6文字で変動文字。
計算フィールドで置換できたらベストです。
よろしくお願いいたします。
置換部分は2か所で固定ですか?
tim様
固定ではありません。
0~9箇所程度ございます。
フィールドごとにaaaの部分の長さも違います。
よろしくお願いいたします。
ループ計算式の例
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
ご丁寧にありがとうございました。
上手にできなかったため、別の方法を考えてみます。
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
数字を消して example を example2 に変換するだけなら
Substitute ( テキスト ; ["1" ; ""] ; ["2" ; ""] ; ["3" ; ""] ; ["4" ; ""] ; ["5" ; ""] ; ["6" ; ""] ; ["7" ; ""] ; ["8" ; ""] ; ["9" ; ""] ; ["0" ; ""] ; ["example." ; "example2."])
でできるけど、そう単純ではないのか?
Offline
Pages: 1
[ Generated in 0.004 seconds, 9 queries executed - Memory usage: 509.82 KiB (Peak: 516.35 KiB) ]