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

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

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

You are not logged in.

Announcement

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


#1 2017-08-23 15:22:53

moila
Member

Get(ドキュメントパス一覧)で取得したテキストから、必要な行のみを取り出し順にインポートしたい

お世話になります。

FileMaker Pro 15 Advを使っています。

表題の通り、Get(ドキュメントパス一覧)で取得したテキストから、必要な行のみを取り出すにはどうすればいいのか思いつきません。

User/Documents/A/1.xls
User/Documents/A/2.xls
User/Documents/B/1.xls
User/Documents/B/2.xls
User/Documents/B/3.xls

上記のようなドキュメントパス一覧が得られたとします。
フォルダBの行のみを取り出して、順にインポートを行いたいです。

方法を教えていただけませんでしょうか。
よろしくお願いします。

Offline

#2 2017-08-23 15:46:55

Hiro
Member

Re: Get(ドキュメントパス一覧)で取得したテキストから、必要な行のみを取り出し順にインポートしたい

ループ計算式で求める方法。

Let(
[
   $lst=Get(ドキュメントパス一覧);
   $key="/B/";      // ←検出"キーワード"を指定
   $i=0;
   $res="";
   $fnc=
       "Case($i=ValueCount($lst); $res;
         Let([
            $i=$i+1;
            #itm=GetValue($lst; $i);
            $res=List($res; Case(PatternCount(#itm; $key); #itm))
         ]; Evaluate($fnc))
      )"
];
   Evaluate($fnc)
)

Offline

#3 2017-08-24 04:51:53

Hiro
Member

Re: Get(ドキュメントパス一覧)で取得したテキストから、必要な行のみを取り出し順にインポートしたい

【補足】
あぁ、
> 取り出して、順にインポートを行いたい
がお望みだから、スクリプト処理でないとダメでしたネ。

【スクリプト】   
・変数を設定 [$variables; 値: Let([$lst=Get(ドキュメントパス一覧); $key="/B/"; $i=0 ]; "")]
・Loop   
・   Exit Loop If [$i=ValueCount($lst)]
・   If [Let([$i=$i+1; $itm=GetValue($lst; $i)]; PatternCount($itm; $key))]
・      レコードのインポート [ダイアログなし; 「$itm」; 追加; シフト JIS]   
・      スクリプトの一時停止/続行[制限時間なし]
・   End If
・End Loop   

Offline

#4 2017-08-24 15:22:50

moila
Member

Re: Get(ドキュメントパス一覧)で取得したテキストから、必要な行のみを取り出し順にインポートしたい

Hiro様

ありがとうございます。
とりあえず中間報告です。

2番めに示していただいた方法を組み込んでみました。
実行したところ、「B」を含むフォルダがカウントされてしまい、インポートするファイルが無いことでエラーになってしまいました。
ここをなんとかすべく色々試してみているところです。

引き続きよろしくお願いします。

Offline

#5 2017-08-24 16:49:17

moila
Member

Re: Get(ドキュメントパス一覧)で取得したテキストから、必要な行のみを取り出し順にインポートしたい

お陰様で、フォルダがカウントされてしまう分も回避することができ、希望の動作ができるようになりました。
フォルダの回避には、$itmの右側1つ目の文字が/の場合は読み込みしないとしました。

Right ( $itm ; 1 )="/"

ありがとうございました。

Offline

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

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.007 seconds, 9 queries executed - Memory usage: 509.2 KiB (Peak: 515.97 KiB) ]