みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
テキストに入力された内容は最後の位数が#の場合、#の前\の追加が必要です。解決方法を教えてください
例:test# → test\#
Offline
使っているバージョンやOSを書きましょう。
計算式中では # はエスケープは不要です。
解決したい問題は具体的には何ですか?
検索モードで # を検索するなら \# です。
test# を検索するなら test\# です。
Offline
検索モードで # を検索するなら \# ですけど、もし入力された内容はt#est、te#st、tes#t、#testなど、\の追加が必要ない、最後でtest#の場合、test\#に変更する
使っているバージョンやOSを書きましょう。
計算式中では # はエスケープは不要です。
解決したい問題は具体的には何ですか?検索モードで # を検索するなら \# です。
test# を検索するなら test\# です。
Offline
申し訳ない。何を言いたいのか分からないです。
エスケープとはフィールド内にその文字が入ることがダメという訳ではないので含まれても問題はありません。
「変更する」というならお好きにどうぞしか言いようがありません。
Claris FileMaker は日本語以外にも対応していますから、理解の深い言語に変更して利用しては如何でしょう。
Offline
フィールド値の最後の文字が#だった場合に¥を挿入したい、というようにしか取れないけど、なんでそれが必要なのか全くわからない...
エクスポートした外部アプリでそういう必要がありうるというのも、ちょっと想像がつかないし...
やるとしたら、onObjectSaveのトリガスクリプトか、計算値自動入力既存値置き換えの計算式で、末尾の文字を判別して挿入すればいいでしょうけど...
あーなるほど。
検索モードで検索するときにフィールドに入力された内容の末尾が「#」だったら「\#」に変換して
意図通り(入力通り)の検索が行われるようにしたいって感じならアリエールかも。
理解力に乏しくて申し訳ない。
Offline
う~~ん。
データの中の#という文字は末尾にしかない(または、さらにデータの末尾は数字ではない)から、末尾の#は数字のワイルドカード検索とはしない、ですか...
確かにあり得るかもしれないけど、しかしそれならユーザは#がワイルドカードだということはわかってる(末尾以外ではワイルドカードとして使用する)ことになるんで、必要なエスケープは検索する人が自分でやった方が確実のような...
検索モードだと計算値自動入力は使えないので、onObjectSaveとか、使ってるスクリプトの検索実行直前でフィールド設定することになりますね。
Replace ( フィールド ; Length ( フィールド ) ; 0 ; Case ( Right ( フィールド ; 1 ) = "#" ; "\\" ) )
とかかな。
ご説明ありがとうございます。試します
う~~ん。
データの中の#という文字は末尾にしかない(または、さらにデータの末尾は数字ではない)から、末尾の#は数字のワイルドカード検索とはしない、ですか...
確かにあり得るかもしれないけど、しかしそれならユーザは#がワイルドカードだということはわかってる(末尾以外ではワイルドカードとして使用する)ことになるんで、必要なエスケープは検索する人が自分でやった方が確実のような...検索モードだと計算値自動入力は使えないので、onObjectSaveとか、使ってるスクリプトの検索実行直前でフィールド設定することになりますね。
Replace ( フィールド ; Length ( フィールド ) ; 0 ; Case ( Right ( フィールド ; 1 ) = "#" ; "\\" ) )
とかかな。
Offline
すみませんが
Replace ( フィールド ; Length ( フィールド ) ; 0 ; Case ( Right ( フィールド ; 1 ) = "#" ; "\\" ) )の中に 0が入ってますが、なぜ0をかきますか?
ご説明ありがとうございます。試します
himadanee wrote:う~~ん。
データの中の#という文字は末尾にしかない(または、さらにデータの末尾は数字ではない)から、末尾の#は数字のワイルドカード検索とはしない、ですか...
確かにあり得るかもしれないけど、しかしそれならユーザは#がワイルドカードだということはわかってる(末尾以外ではワイルドカードとして使用する)ことになるんで、必要なエスケープは検索する人が自分でやった方が確実のような...検索モードだと計算値自動入力は使えないので、onObjectSaveとか、使ってるスクリプトの検索実行直前でフィールド設定することになりますね。
Replace ( フィールド ; Length ( フィールド ) ; 0 ; Case ( Right ( フィールド ; 1 ) = "#" ; "\\" ) )
とかかな。
Offline
例:1#
この0は1と#の間という意味でしょうか?
すみませんが
Replace ( フィールド ; Length ( フィールド ) ; 0 ; Case ( Right ( フィールド ; 1 ) = "#" ; "\\" ) )の中に 0が入ってますが、なぜ0をかきますか?banana wrote:ご説明ありがとうございます。試します
himadanee wrote:う~~ん。
データの中の#という文字は末尾にしかない(または、さらにデータの末尾は数字ではない)から、末尾の#は数字のワイルドカード検索とはしない、ですか...
確かにあり得るかもしれないけど、しかしそれならユーザは#がワイルドカードだということはわかってる(末尾以外ではワイルドカードとして使用する)ことになるんで、必要なエスケープは検索する人が自分でやった方が確実のような...検索モードだと計算値自動入力は使えないので、onObjectSaveとか、使ってるスクリプトの検索実行直前でフィールド設定することになりますね。
Replace ( フィールド ; Length ( フィールド ) ; 0 ; Case ( Right ( フィールド ; 1 ) = "#" ; "\\" ) )
とかかな。
Offline
1と#の間 はLength ( フィールド ) の方です。この例では長さが2文字なので、2文字目の位置
0文字置き換える=挿入という動作になります。
わかりました、ありがとうございました。
Offline
Pages: 1
[ Generated in 0.006 seconds, 9 queries executed - Memory usage: 570.31 KiB (Peak: 586.85 KiB) ]