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

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

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

You are not logged in.

Announcement

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


#1 2021-09-28 14:42:54

banana
Member

エスケープ文字について

テキストに入力された内容は最後の位数が#の場合、#の前\の追加が必要です。解決方法を教えてください
例:test# →  test\#

Offline

#2 2021-09-28 15:04:49

Moz
Member

Re: エスケープ文字について

使っているバージョンやOSを書きましょう。

計算式中では # はエスケープは不要です。
解決したい問題は具体的には何ですか?

検索モードで # を検索するなら \# です。
test# を検索するなら test\# です。

Offline

#3 2021-09-28 15:25:07

banana
Member

Re: エスケープ文字について

検索モードで # を検索するなら \# ですけど、もし入力された内容はt#est、te#st、tes#t、#testなど、\の追加が必要ない、最後でtest#の場合、test\#に変更する





Moz wrote:

使っているバージョンやOSを書きましょう。

計算式中では # はエスケープは不要です。
解決したい問題は具体的には何ですか?

検索モードで # を検索するなら \# です。
test# を検索するなら test\# です。

Offline

#4 2021-09-28 15:33:11

Moz
Member

Re: エスケープ文字について

申し訳ない。何を言いたいのか分からないです。
エスケープとはフィールド内にその文字が入ることがダメという訳ではないので含まれても問題はありません。

「変更する」というならお好きにどうぞしか言いようがありません。

Claris FileMaker は日本語以外にも対応していますから、理解の深い言語に変更して利用しては如何でしょう。

Offline

#5 2021-09-28 19:35:49

himadanee
Guest

Re: エスケープ文字について

フィールド値の最後の文字が#だった場合に¥を挿入したい、というようにしか取れないけど、なんでそれが必要なのか全くわからない...
エクスポートした外部アプリでそういう必要がありうるというのも、ちょっと想像がつかないし...

やるとしたら、onObjectSaveのトリガスクリプトか、計算値自動入力既存値置き換えの計算式で、末尾の文字を判別して挿入すればいいでしょうけど...

#6 2021-09-29 06:37:46

Moz
Member

Re: エスケープ文字について

あーなるほど。
検索モードで検索するときにフィールドに入力された内容の末尾が「#」だったら「\#」に変換して
意図通り(入力通り)の検索が行われるようにしたいって感じならアリエールかも。

理解力に乏しくて申し訳ない。

Offline

#7 2021-09-29 09:48:05

himadanee
Guest

Re: エスケープ文字について

う~~ん。
データの中の#という文字は末尾にしかない(または、さらにデータの末尾は数字ではない)から、末尾の#は数字のワイルドカード検索とはしない、ですか...
確かにあり得るかもしれないけど、しかしそれならユーザは#がワイルドカードだということはわかってる(末尾以外ではワイルドカードとして使用する)ことになるんで、必要なエスケープは検索する人が自分でやった方が確実のような...

検索モードだと計算値自動入力は使えないので、onObjectSaveとか、使ってるスクリプトの検索実行直前でフィールド設定することになりますね。
Replace ( フィールド ; Length ( フィールド ) ; 0 ; Case ( Right ( フィールド ; 1 ) = "#" ; "\\" ) )
とかかな。

#8 2021-10-04 15:03:21

banana
Member

Re: エスケープ文字について

ご説明ありがとうございます。試します


himadanee wrote:

う~~ん。
データの中の#という文字は末尾にしかない(または、さらにデータの末尾は数字ではない)から、末尾の#は数字のワイルドカード検索とはしない、ですか...
確かにあり得るかもしれないけど、しかしそれならユーザは#がワイルドカードだということはわかってる(末尾以外ではワイルドカードとして使用する)ことになるんで、必要なエスケープは検索する人が自分でやった方が確実のような...

検索モードだと計算値自動入力は使えないので、onObjectSaveとか、使ってるスクリプトの検索実行直前でフィールド設定することになりますね。
Replace ( フィールド ; Length ( フィールド ) ; 0 ; Case ( Right ( フィールド ; 1 ) = "#" ; "\\" ) )
とかかな。

Offline

#9 2021-10-05 13:18:15

banana
Member

Re: エスケープ文字について

すみませんが
Replace ( フィールド ; Length ( フィールド ) ; 0 ; Case ( Right ( フィールド ; 1 ) = "#" ; "\\" ) )の中に 0が入ってますが、なぜ0をかきますか?



banana wrote:

ご説明ありがとうございます。試します


himadanee wrote:

う~~ん。
データの中の#という文字は末尾にしかない(または、さらにデータの末尾は数字ではない)から、末尾の#は数字のワイルドカード検索とはしない、ですか...
確かにあり得るかもしれないけど、しかしそれならユーザは#がワイルドカードだということはわかってる(末尾以外ではワイルドカードとして使用する)ことになるんで、必要なエスケープは検索する人が自分でやった方が確実のような...

検索モードだと計算値自動入力は使えないので、onObjectSaveとか、使ってるスクリプトの検索実行直前でフィールド設定することになりますね。
Replace ( フィールド ; Length ( フィールド ) ; 0 ; Case ( Right ( フィールド ; 1 ) = "#" ; "\\" ) )
とかかな。

Offline

#10 2021-10-05 16:06:40

banana
Member

Re: エスケープ文字について

例:1#
この0は1と#の間という意味でしょうか?


banana wrote:

すみませんが
Replace ( フィールド ; Length ( フィールド ) ; 0 ; Case ( Right ( フィールド ; 1 ) = "#" ; "\\" ) )の中に 0が入ってますが、なぜ0をかきますか?



banana wrote:

ご説明ありがとうございます。試します


himadanee wrote:

う~~ん。
データの中の#という文字は末尾にしかない(または、さらにデータの末尾は数字ではない)から、末尾の#は数字のワイルドカード検索とはしない、ですか...
確かにあり得るかもしれないけど、しかしそれならユーザは#がワイルドカードだということはわかってる(末尾以外ではワイルドカードとして使用する)ことになるんで、必要なエスケープは検索する人が自分でやった方が確実のような...

検索モードだと計算値自動入力は使えないので、onObjectSaveとか、使ってるスクリプトの検索実行直前でフィールド設定することになりますね。
Replace ( フィールド ; Length ( フィールド ) ; 0 ; Case ( Right ( フィールド ; 1 ) = "#" ; "\\" ) )
とかかな。

Offline

#11 2021-10-05 21:08:22

himadanee
Guest

Re: エスケープ文字について

1と#の間 はLength ( フィールド ) の方です。この例では長さが2文字なので、2文字目の位置
0文字置き換える=挿入という動作になります。

#12 2021-10-05 21:44:15

banana
Member

Re: エスケープ文字について

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

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: 570.27 KiB (Peak: 586.81 KiB) ]