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

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

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

You are not logged in.

Announcement

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


#1 2017-03-06 21:53:06

xnado
Member

フィールド内のある特定の部分のみを置換したい

Windows7、FM11advを使用しています。

Aというフィールド内にある、かぎかっこで括られた中のスペース(全角も半角も)を半角のアンダーバーに置換したいのですがどうやればいいでしょうか。
フィールド内にあるが、かぎかっこの外にあるスペースはそのままスペースのままとしたい。

そのフィールド内に入る文章の最大文字数は500文字ほどです。
かぎかっこの数は最大で60ほどです。


具体例

置換前:あ る日「おじい さん」とおばあさんが「う み へ」行き、「さ かな」を捕    りました。

置換後:あ る日「おじい_さん」とおばあさんが「う_み_へ」行き、「さ_かな」を捕    りました。


できたらテキストフィールドのオプションから入力値の自動化⇒計算値から指定できるのが理想です。

どなたかご教示ください。よろしくお願いします。

Offline

#2 2017-03-06 22:47:12

シャチ
Member

Re: フィールド内のある特定の部分のみを置換したい

Substitute関数を使ってみてください。

Offline

#3 2017-03-06 23:01:23

Hiro
Member

Re: フィールド内のある特定の部分のみを置換したい

入力自動化で一発変換する計算式例

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

#4 2017-03-07 10:06:32

qb_dp
Member

Re: フィールド内のある特定の部分のみを置換したい

Hiro wrote:

入力自動化で一発変換する計算式例

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

#5 2017-03-07 12:15:15

xnado
Member

Re: フィールド内のある特定の部分のみを置換したい

ご教示ありがとうございます。
お二方の内容でイメージ通りのものが実現できました。
まだ細かい内容が分かりませんので、ひとつずつ解読したいと思います。

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

Offline

#6 2017-03-07 12:18:02

Hiro
Member

Re: フィールド内のある特定の部分のみを置換したい

qb_dp wrote:

あれ?
#txt=Quote ( テキストフィールドA );
で、大丈夫でしたよ。

以下も変更しています。

Evaluate("\"" & #fnc & "\"")

Evaluate(#fnc)

済みません。前レス送信直後に誤りを見つけたので、削除してしまいました。
こちらの事前検証でQuoteがダメだったのは、Evaluate("\"" & #fnc & "\"")の
「”」囲みを残したままテストしていたからでした。

Offline

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

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.010 seconds, 9 queries executed - Memory usage: 513.14 KiB (Peak: 517.68 KiB) ]