みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
お世話になります。
下記のように改行が二重を一つに変えようとしますが
認識していないようです。
Substitute ("¶¶";"¶")
良い方法を教えてください。
まず考えられないトラブルですが
ひょっとして ¶ がもっとたくさんある場合はありませんか?
その場合は Substitute ("¶¶";"¶") をネスティングルなどの対処が必要です
Offline
シャチさん。 ありがとうございます。
あるURLからドラッグ・ドロップでコピーしたものが
二重の改行でしたので
Filter ( Substitute ( りすと ; ["月" ; " / "];["¶¶";"¶"]) ; "0123456789¶/" )
として改行を一つに変えようと思ったのです。
どうもよくわからんですが、
一度テストで
¶ をぜんぶとってみるとか
¶¶¶ を ¶ にして見るとかの実験は?
Offline
その空白行に何かゴミが入っていたりしませんか。
例えばブランクとかタブコードとか。
また、
> ["¶¶";"¶"]
これが、
["¶ ¶";"¶"]
↑
ブランク
こうなっていたり。。
Offline
改行コード「Char(10)」が、入ってしまっているとか?
PatternCount ( りすと ; Char(10) )
で、確認出来ます。
Offline
[¶&¶ ; ¶]はどうですか。
元文章の話か・・・意味が違ったm(_ _)m
Last edited by 旅人 (2017-01-19 11:37:20)
Offline
私が提案した実験は
改行全てを削除して
想定通りの結果になるかどうかです。
ならなければ何かゴミみたいに目には見えないもの
空白みたいに見えるものが混在している可能性があるということです。
Last edited by シャチ (2017-01-19 21:33:12)
Offline
このファイルでは、どうテストしても反応がありませんが
テスト用のそれだけのファイルでは二重の改行が一度だけに変換されています。
仰るように、元のファイルで、何か余分なスペースなどがないかと探ってみますが不明です
シャチさんの仰るように実行したら、改行のない素の文字列になりました。
にもかかわらず質問した一行には、ならないのが不思議です。
も少し触ってみます。
ありがとうございます
以下のように回り道ですが実験してみました。
元のフィールド=
Filter ( Substitute ( りすと ; "月" ; "/") ; "0123456789¶/" )
↓
空行削除=
Substitute ( ふぃるた ; "¶" ; "_" )
↓
目的のフィールド=
年 & "/" & Substitute ( 空行削除 ; [ "__" ; "¶" & 年 & "/"];["_";""] )
なんとか、これを使おうと思います。
もともとは"Filter"するフィールドを"値一覧"に取り込み後
"ValueListItems"でシストに展開しようとしましたが
この"ValueListItems"が思うように計算してくれないので
先の状態になったのです。
単一のテーブルでは計算結果を出してくれるのに
複数のテーブルではリストとして結果をだしてくれませんでした。
マシンが悪いのでしょうか?
ありがとうございました。
マシンが悪いのではなく
どこかに見落としはありませんか?
私の経験では、結構簡単なところで凡ミスしてたりします。
Offline
> 以下のように回り道ですが実験してみました
実験するなら、
まず、元のフィールドの改行の問題からでは。
他はいじらずに、
今まで提案された改行の問題だけを実験してみたらいかがでしょう。
Offline
CR と LF の2重コードになっている、という事でしょう。
Substitute ( テキスト ;[ Chr ( 10 ) ; "" ];[ Chr ( 13 ) ; "" ])
を試してみれば、すべての改行が削除されるのでは。
Offline
CR と LF の2重コードになっている、という事でしょう。
Substitute ( テキスト ;[ Chr ( 10 ) ; "" ];[ Chr ( 13 ) ; "" ])
を試してみれば、すべての改行が削除されるのでは。
Shinさんの方法で試した結果は
Filter ( Substitute ( りすと ; ["月" ; "/"];[Char ( 10 );""];[Char ( 13 );""]) ; "0123456789¶/" )
→ 改行無し
Filter ( Substitute ( りすと ; ["月" ; "/"];[Char ( 10 );""];[Char ( 13 );"¶"]) ; "0123456789¶/" )
→ 変化なし_改行有り
Filter ( Substitute ( りすと ; ["月" ; "/"];[Char ( 10 );"¶"];[Char ( 13 );""]) ; "0123456789¶/" )//二重改行無し
→ 改行無し
でした。>>やっぱり実験の方法に頼らざるを得ないと思います。
あ~検証は、シンプルにした方が良いですよ。
Filter ( Substitute ( りすと ; ["月" ; "/"];[Char ( 10 );"¶"];[Char ( 13 );""]) ; "0123456789¶/" )//二重改行無し
→ 改行無し
この結果だと、やはり、「Char ( 10 )」が含まれていますよ。
上の式だと「Char ( 10 )」をFMの改行(¶)に置換して、[Char ( 13 );""] でその改行を消しています。
コレで
PatternCount ( りすと ; Char(10) )
で確認しましょう。
検証は、シンプルに。
Substitute ( りすと ; Char ( 10 );"改行¶")
Last edited by qb_dp (2017-01-19 16:07:59)
Offline
あ~検証は、シンプルにした方が良いですよ。
Filter ( Substitute ( りすと ; ["月" ; "/"];[Char ( 10 );"¶"];[Char ( 13 );""]) ; "0123456789¶/" )//二重改行無し
→ 改行無しこの結果だと、やはり、「Char ( 10 )」が含まれていますよ。
上の式だと「Char ( 10 )」をFMの改行(¶)に置換して、[Char ( 13 );""] でその改行を消しています。コレで
PatternCount ( りすと ; Char(10) )
で確認しましょう。検証は、シンプルに。
Substitute ( りすと ; Char ( 10 );"改行¶")
db-dpさん。ありがとうございます。
仰せの内容が理解できないまま計算してみました。
・PatternCount ( りすと ; Char(10) ) → 結果=0
・Substitute ( りすと ; Char ( 10 );"改行¶") → 結果=元の二重改行
あっ!!分かりました。十中八九コレです。
二重改行が、
「¶ NULL文字 ¶」
になっているのでしょう。
WEBページからコピペすると、まれに「NULL文字」がくっついてきます。
元のフィールド=
Filter ( Substitute ( りすと ; "月" ; "/") ; "0123456789¶/" )
↓
空行削除=
Substitute ( ふぃるた ; "¶" ; "_" )
↓
目的のフィールド=
年 & "/" & Substitute ( 空行削除 ; [ "__" ; "¶" & 年 & "/"];["_";""] )
上記の式が大丈夫なのは、一番最初の Filter で、「NULL文字」が除去されているのでしょう。
なので、「_」(アンダーバー)の置換は、不要です。
元のフィールド=
Filter ( Substitute ( りすと ; "月" ; "/") ; "0123456789¶/" )
↓
目的のフィールド=
年 & "/" & Substitute ( 元のフィールド ; [ "¶¶" ; "¶" & 年 & "/"] )
迷惑な「NULL文字|Code(0)」: http://blog.joy-h.com/2014/09/nullcode0 … erpop.html
Last edited by qb_dp (2017-01-19 16:53:41)
Offline
qb_dpさん。
まさに名医です。診断と処方が素晴らしいです。
お陰様で中間の計算を使用しないて簡潔にできました。
ありがとうございました。
Pages: 1
[ Generated in 0.005 seconds, 8 queries executed - Memory usage: 555.03 KiB (Peak: 575.94 KiB) ]