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

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

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

You are not logged in.

Announcement

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


#1 2019-09-26 11:38:31

FM Beginner
Guest

パスの分解と結合

皆様のお力を貸して頂ければ幸いです。
宜しくお願い致します。

内容は下記の通りです。(FileMaker16)

①1つのパスにA>B>C>D(A>B>Cなど短くなる場合も有り)と>で区切られて記載されているデータを、別々のパスに分解したい。

②それぞれのパス(1-4個)に入力されたデータを1つのパスに改行してデータをまとめたい。

例)A B C  ➡    A
                       B
                       C

#2 2019-09-26 11:45:22

Hiro
Member

Re: パスの分解と結合

List関数を使えば空欄は自動的にリストから排除されます。
List(A;B;C;D)

Offline

#3 2019-09-26 11:51:43

チポ
Member

Re: パスの分解と結合

">"を¶
に変えればいいですね。

変えるのは
  Substitute関数
でできます。

関数のヘルプのリンクです
  https://fmhelp.filemaker.com/help/18/fm … 3ww1276279

Offline

#4 2019-09-26 11:57:58

FM Beginner
Guest

Re: パスの分解と結合

Hiro様、チポ様ご回答ありがとうございます!
初心者の質問で申し訳ありませんm(__)m

#5 2019-09-27 10:04:41

FM Beginner
Guest

Re: パスの分解と結合

調べつつ行いましたが、私の説明が悪かったのかまだ解決ができておりませんm(__)m
まずは、①を解決したいのでお力添えいただけると幸いです。

①1つのレコードに下記のような形で記載されている。

| A>B>C>D(又はA>B>C) |

1つのレコードに入力されている上記内容をそれぞれ分解したい。

つまり、

| A | B | C | D |

という形にしたいです。

初心者のため、少し具体的な回答を頂けますと嬉しいです。
宜しくお願い致します。

#6 2019-09-27 10:26:04

koeda
Member

Re: パスの分解と結合

①分解した後、どうしたいのでしょう?
1つのフィールドに入っている「パス」の文字列データを分解して、4つのフィールドに入れたい
ということでしょうか?

②それぞれのパスとは、4つのフィールドに分かれているということですか?

(追記)
という前提に立ったサンプルを作りました。
https://www.dropbox.com/s/su318eefg4zl3 … fmp12?dl=0

Last edited by koeda (2019-09-27 10:52:32)

Offline

#7 2019-09-27 11:48:26

FM Beginner
Guest

Re: パスの分解と結合

Koeda様

お時間さいて頂き、親切な回答まで頂き本当にありがとうございます。

①について
こちらについてはKoeda様がおっしゃる通りです。
サンプルデータの元データをFld1-4のように行いたいです。

②について
こちらについては、Koeda様のサンプルデータで説明すると、Fld1-4のように並んだデータを改行で区切られた「リスト」のようにしたいです。

お手隙の際ご返信いただければ幸いです。
宜しくお願い致します。

#8 2019-09-27 12:55:13

koeda
Member

Re: パスの分解と結合

FM Beginner wrote:

お手隙の際ご返信いただければ幸いです。

提示したサンプルの中でパスの分解と結合は実現しているはずなので、
サンプルの「元データ」をご自分で書き換えてみて、「Fld1」〜「Fld4」と「リスト」の内容が
お望み通りに変更されるか動作を確認してみてください。

もし希望どおりの動作でしたら、データベースの管理を開き、それぞれのフィールドの計算式で
Substitute()やList()などの関数をどのように使っているか検討してください。
#ついでにGetValue()関数も学んでください。

リスト化はあえてList関数を使い、Fld1〜Fld4の値をリスト化していますが、
チポさんの回答にあるとおり、Substitute関数を使って元データの">"を¶に置き換えても
もちろん同じ結果が得られます。

Last edited by koeda (2019-09-27 13:02:33)

Offline

#9 2019-09-27 12:57:58

Hiro
Member

Re: パスの分解と結合

> 『つまり、 | A | B | C | D | という形にしたいです。』
この「形」の意味する処を、FMで云う「繰り返しフィールド(計算)」と仮定すれば、
その計算フィールドの式は、

GetValue(
   Substitute(パスフィールド[1]; [">";¶])
   ; Get(計算式繰り返し位置番号)
)

Offline

#10 2019-09-27 13:39:22

FM Beginner
Guest

Re: パスの分解と結合

Koeda様、Hiro様
お忙しいところご教授頂きありがとうございます!

少しずつ意味を理解してきました。
ご丁寧な回答を頂いたおかげで解決できそうです。
FMを導入したのが最近で、不慣れな部分が多くご迷惑をおかけしますが、
また、何かの機会がありましたら、その際は宜しくお願い致します。
ありがとうございました。

Registered users online in this topic: 0, guests: 1
[Bot] ClaudeBot

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.007 seconds, 7 queries executed - Memory usage: 520.04 KiB (Peak: 524.95 KiB) ]