みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
□環境
Mac バージョン13(sonomaの一つ前)で、ファイルメーカーはv.18です
□質問
とある文章をリスト化した時に、検索記号と置換記号を指定してリスト化しています。その方法は知っているのですが、検索記号に指定している文字が対象となる文面の中に入っている時にそれを対象外とする方法です。
つまり、例えば・・・
「青森県、山梨県、東京都(23区、多摩地方)、沖縄県」という文章があった時に、
「、」の文字を改行文字「¶」に変換してリスト化、
Substitute ( List (その文章が入っているフィールド名) ; "、" ; "¶" )
で処理を行い、一行ごとのリスト化しているんですが、
青森県
山梨県
東京都(23区
多摩地方)
沖縄県
↑こうなります。
私の理想としては↓
青森県
山梨県
東京都(23区、多摩地方)
沖縄県
↑としたいのです。
【カッコで覆われた文面の中に入っている「、」はリスト化の対象外に指定する方法】、これを教えて頂きたく思います。
お忙しいところ恐縮でございます。お時間があった際で構いません。
他にもありますか?
例えば
(大阪市、・・・)
とか、
有ればその種類数は?
Offline
チポ様
例文の通りでございます。カッコ内に内包された「、」の記号は改行文字「¶」に変換しない方法です。
もう一つ例文を挙げるならば・・・
「青森県、山梨県、東京都(23区、多摩地方)、大阪市(北区、中央区、旭区)、沖縄県」だとすると
青森県
山梨県
東京都(23区、多摩地方)
大阪市(北区、中央区、旭区)
沖縄県
こうしたいのです。
「区、」
だけだとすれば、それを他の文字列にエスケープしておいて、最後に戻す。
という方法があります。
Substitute ( テキスト ; ["区、" ; "XXXXXX"] ; [ "、" ; ¶] ; ["XXXXXX" ; "区、"] )
「XXXXXX」
これは、テキスト内で絶対に使われない文字列ならなんでも可です。
Offline
チポ様
>「区、」だけだとすれば
例文が説明下手でしたね。
果物(りんご、みかん、なし)とか
時間(過去、現在、未来)・・・などなど、
例文として定義した中身そのものは何だっていいんですね。
要は「文章内の()で囲まれた内に存在する「、」の文字をトリガーにして改行させたくない」と言うことです。
While (
[
t = Substitute ( Text ;[ "、" ; ¶ ];[ "(" ; "(" ];[ ")" ; ")" ]) ;
n = PatternCount ( t ; "(" )
] ;
n ;
[
i = Position ( t ; "(" ; 1 ; n ) ;
j = Position ( t ; ")" ; 1 ; n ) ;
k = Substitute ( Middle ( t ; i ; j - i ) ; ¶ ; "、" ) ;
t = Replace ( t ; i ; j - i ; k ) ;
n = n - 1
] ;
t
)Last edited by Shin (2023-11-01 22:27:54)
Offline
どうもありがとうございます、無事に解決出来ました。
思った通りの挙動となったことが確認出来ました。
簡単な式では無かったので、なるほどと目から鱗状態でした。
まだまだ勉強が足りなかったです。
とにかく、無事に解決いたしました。ご協力いただいた皆様に感謝します。ありがとうございました。
Pages: 1
[ Generated in 0.005 seconds, 7 queries executed - Memory usage: 558.71 KiB (Peak: 582.66 KiB) ]