みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
Windows7、FM11advを使用しています。
Aというフィールド内にある、かぎかっこで括られた中のスペース(全角も半角も)を半角のアンダーバーに置換したいのですがどうやればいいでしょうか。
フィールド内にあるが、かぎかっこの外にあるスペースはそのままスペースのままとしたい。
そのフィールド内に入る文章の最大文字数は500文字ほどです。
かぎかっこの数は最大で60ほどです。
具体例
置換前:あ る日「おじい さん」とおばあさんが「う み へ」行き、「さ かな」を捕 りました。
置換後:あ る日「おじい_さん」とおばあさんが「う_み_へ」行き、「さ_かな」を捕 りました。
できたらテキストフィールドのオプションから入力値の自動化⇒計算値から指定できるのが理想です。
どなたかご教示ください。よろしくお願いします。
Offline
Substitute関数を使ってみてください。
Offline
入力自動化で一発変換する計算式例
Let([
#txt=Substitute(テキストフィールドA; [¶;Char(182)]);
#fnc=
Substitute(#txt
; ["「"; "「\" & Substitute(\""]
; ["」"; "\";[Char(12288);Char(95)];[Char(32);Char(95)]) & \"」"]
)
];
Evaluate("\"" & #fnc & "\"")
)
Last edited by Hiro (2017-03-07 03:02:52)
Offline
入力自動化で一発変換する計算式例
Let([
#txt=Substitute(テキストフィールドA; [¶;Char(182)]);
#fnc=
Substitute(#txt
; ["「"; "「\" & Substitute(\""]
; ["」"; "\";[Char(12288);Char(95)];[Char(32);Char(95)]) & \"」"]
)
];
Evaluate("\"" & #fnc & "\"")
)
勝手に修正(^^;)
上記では、「"」ダブルクォーテーションがあるとエラーになるので
#txt=Substitute(テキストフィールドA; [¶;Char(182)]);
↓
#txt=Quote ( テキストフィールドA );
が良いかと思います。
Let([
#txt=Quote ( テキストフィールドA );
#fnc=
Substitute(#txt
; ["「"; "「\" & Substitute(\""]
; ["」"; "\";[Char(12288);Char(95)];[Char(32);Char(95)]) & \"」"]
)
];
Evaluate(#fnc)
)
Offline
ご教示ありがとうございます。
お二方の内容でイメージ通りのものが実現できました。
まだ細かい内容が分かりませんので、ひとつずつ解読したいと思います。
ありがとうございました。
Offline
あれ?
#txt=Quote ( テキストフィールドA );
で、大丈夫でしたよ。以下も変更しています。
Evaluate("\"" & #fnc & "\"")
↓
Evaluate(#fnc)
済みません。前レス送信直後に誤りを見つけたので、削除してしまいました。
こちらの事前検証でQuoteがダメだったのは、Evaluate("\"" & #fnc & "\"")の
「”」囲みを残したままテストしていたからでした。
Offline
Pages: 1
[ Generated in 0.021 seconds, 7 queries executed - Memory usage: 512.05 KiB (Peak: 516.59 KiB) ]