初心者のFileMaker pro Q&A

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

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

ログインしていません。

アナウンス

Claris FileMaker Pro ヘルプ
新しい質問は、新規トピック から投稿して下さい。


#1 2024-02-09 14:59:33

fpck
メンバー

[解決] リストから0を取り除きたい

いつもお世話になっております。
以下のようなリストから0の行を取り除くにはどのようにすれば良いでしょうか。

0
10
2
3
0
4
0

10
2
3
4

編集者 fpck (2024-02-09 15:01:17)

オフライン

#2 2024-02-09 15:14:23

チポ
メンバー

Re: [解決] リストから0を取り除きたい

書かれた1行が1レコードで、
対象レコードにしたいのなら、検索するだけでは。

オフライン

#3 2024-02-09 16:31:24

Shin
メンバー

Re: [解決] リストから0を取り除きたい

それが、テキスト列なら、
Subatirut ( text ; "¶0¶" ; "¶" )

オフライン

#4 2024-02-09 17:04:22

チポ
メンバー

Re: [解決] リストから0を取り除きたい

テキスト列ならそれじゃすまないでしょう。

01,002
の様なのがないことを条件にして、

Replace ( Substitute ( ¶ & テキスト ; ["¶0" ; "" ] ; [ "¶¶" ; "¶"] ) ; 1 ; 1 ; "" )

こんなのでは。。

オフライン

#5 2024-02-09 17:54:19

Shin
メンバー

Re: [解決] リストから0を取り除きたい

01  001 などがあってもいい式
Let (
[
   c1 = Char ( 1 ) ;
   c2 = Char ( 2 )
] ;
   Subatirut ( c2 & text & c1;[ ¶ ; c1 & c2 ];[ c2 & "0" & c1 ; "" ];[ c1 & c2 ; ¶ ];[ c1 ; "" ];[ c2 ; "" ])
)

オフライン

#6 2024-02-14 09:37:15

himadanee
ゲストユーザー

Re: [解決] リストから0を取り除きたい

つまり両側に改行を付ければいいわけですよね。置換で0を取り除いて、つけた改行を取る。
Let([
t=List(0;10;0;20;"02";"003";100;1;2);
s= Substitute ( ¶ & t & ¶ ; "¶0¶" ; ¶ )
];
Middle(s;2;Length(s)-2)
)

#7 2024-02-14 11:10:26

Shin
メンバー

Re: [解決] リストから0を取り除きたい

himadaneeさん、0,0 となった時に、2番目がとれないです(だから#3がダメ)
Substitute ( ¶ & t & ¶ ;[ "¶0¶" ; ¶ ];[ "¶0¶" ; ¶ ])
だとうまくいくかも

編集者 Shin (2024-02-14 13:25:06)

オフライン

#8 2024-02-14 18:00:16

fpck
メンバー

Re: [解決] リストから0を取り除きたい

みなさんありがとうございます。
#5でうまくいきました。

オフライン

#9 2024-02-15 12:55:05

himadanee
ゲストユーザー

Re: [解決] リストから0を取り除きたい

ああそっか、区切り文字が兼用されるとだめなんですね。

#10 2024-02-15 18:36:56

Shin
メンバー

Re: [解決] リストから0を取り除きたい

#7でも、繰り返しが多いとダメですね

オフライン

#11 2024-02-15 19:12:44

himadanee
ゲストユーザー

Re: [解決] リストから0を取り除きたい

これでいいのかな。一旦改行を2倍にして、元に戻す。削除は前後の区切りごと消すことになる。
#5は前後を別の文字にしているわけですね。それでMiddleを使わずに済んでますね。

Let([
t=List(0;10;0;0;0;0;20;"02";"003";100;1;2);
t= ¶ & t & ¶ ;
s= Substitute ( t ; [ ¶ ; ¶ & ¶ ] ; [ "¶0¶" ; "" ] ; [ ¶ & ¶ ; ¶ ]  )
];
Middle(s;2;Length(s)-2)
)

クィック投稿

メッセージを書いて送信してください。
登録の確認

実在の人物による登録であることを確認します。

Board footer