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

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

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

You are not logged in.

Announcement

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


#1 2023-02-18 22:12:57

Alex
Member

1つのレコードに改行ごとに纏められているデータを分割したいです。

また帳票の表記だけの問題なのですが、教えてください。

1つのレコードに下記のように改行でデータが纏められてしまっているのですが、
======
あああ
いいい
ううう

ええええ
おおお

かかかかか
きききき
くくくく
けけけけけ
=======

上記を別のテーブルのフィールドに
新規レコードとして、下記のように格納したいのですが、教えて頂けますでしょうか?
Loopでカウントを重ねながらLet関数で値を区切って、新規レコード/フィールド設定を続けていくしかないかと思うのですが、
Let関数の中身が思いつかず、、宜しくお願い致します。

======
あああ
いいい
ううう
======

======
ええええ
おおお
======

======
かかかかか
きききき
くくくく
けけけけけ
=======

Offline

#2 2023-02-19 10:30:35

himadanee
Guest

Re: 1つのレコードに改行ごとに纏められているデータを分割したいです。

連続した改行だけレコード区切りで、単独の改行はそのままフィールドデータにするという意味ですか?

#3 2023-02-19 20:17:01

Alex
Member

Re: 1つのレコードに改行ごとに纏められているデータを分割したいです。

himadaneeさん、コメント有難うございます。
連続した改行だけレコード区切りで、単独の改行は各レコードに含めない形になります。
(もしくは単独の改行は各レコードの最後尾に残る形でも構いません。)

Offline

#4 2023-02-20 06:58:13

himadanee
Guest

Re: 1つのレコードに改行ごとに纏められているデータを分割したいです。

単独の改行を含めないなら
======
あああ
いいい
ううう
======
ではなく
======
あああいいいううう
======
になりますよね。

#5 2023-02-20 08:28:46

Shin
Member

Re: 1つのレコードに改行ごとに纏められているデータを分割したいです。

Substitute ( TXT ;[ ¶ ; Char(1) & Char(2) ];[ Char(2) & CHar(1) ; ¶ ];[ Char(1) ; "" ];[ Char(2) ; "" ])
で、レコードごとに¶で区切られます。これを、GetValue() すればいいです。単独の改行を含めるなら、
Substitute ( TXT ;[ ¶ ; Char(1) & Char(2) ];[ Char(2) & CHar(1) ; ¶ ])
にしておき、分離した後で、
Substitute ( TXT ;[ Char(1) & Char(2) ; ¶];[ Char(1) ; "" ];[ Char(2) ; "" ])

Last edited by Shin (2023-02-20 10:39:52)

Offline

#6 2023-02-20 10:39:51

チポ
Member

Re: 1つのレコードに改行ごとに纏められているデータを分割したいです。

改行2回ごとに繰り返しフィールドにすればそれをインポートで簡単ですね。

繰り返しの計算式は
  GetValue ( Substitute ( テキスト[1] ; [¶ ; Char (1)] ; [Char (1) & Char (1) ; ¶ ] ; Get (計算式繰り返し位置番号) )
これで、各繰り返し位置に1レコード分が入りますが、
文字区切りにChar (1)が入っていますから、ご希望の文字に変えればいいですね。

これをばらしてインポートすればいいでしょう。

Last edited by チポ (2023-02-20 10:57:15)

Offline

#7 2023-02-20 15:27:51

Alex
Member

Re: 1つのレコードに改行ごとに纏められているデータを分割したいです。

himadaneeさん、申し訳ありません。私が質問を正しく理解していなかったです。
単独の改行を含める形でした。

Shinさん、チポさん
有難うございます。御二方の案でいけることを確認しました。

Shinさんの案だと、下記でできました!!

変数を設定[$txt ;  値 ; テーブル1::纏めデータ]
変数を設定[$cnt ;  値; 0]
Loop
Exit Loop if[Let([  $cnt=$cnt+1;
$itm=Substitute ( GetValue ( Substitute ( $txt  ;[ ¶ ; Char(1) & Char(2) ];[ Char(2) & Char(1) ; ¶ ]);$cnt) ;[ Char(1) & Char(2) ; ¶];[ Char(1) ; "" ];[ Char(2) ; "" ])];
$cnt>ValueCount($txt)
)]

Exit Loop if  [ IsEmpty ( $itm ) ]
新規レコード/検索条件
フィールド設定[テーブル2::個別データ; $itm]
レコード/検索条件確定
End Loop

Last edited by Alex (2023-02-20 15:29:36)

Offline

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

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.006 seconds, 10 queries executed - Memory usage: 557.47 KiB (Peak: 564.49 KiB) ]