こんにちは、みんな、
私はJSLを使って、ディレクトリからファイルを収集し、フィルタリングする作業を行っています。
基本的なフィルタリングロジック(名前、拡張子、サイズ)は正しく機能しますが、信頼性の高い作成日フィルタを追加しようとすると問題が発生します。
このコードは、名前に「result」を含む空でない.txtファイルを正しく検出します。
</CODE></PRE>
<P>Windows上でJSLを使ってファイルを作成日でフィルタリングする場合、Files In DirectoryとFilter Eachを組み合わせる際に推奨される、または信頼できる方法は何ですか?<BR /><BR />ありがとう、</P>
<BR />
</LINGO-BODY>
<LINGO-LABS id="lingo-labs-944809" slang="en-US" mode="CREATE">
<LINGO-LABEL>自動化とスクリプト作成</LINGO-LABEL>
<LINGO-LABEL>データアクセス</LINGO-LABEL>
</LINGO-LABS>
<LINGO-SUB id="lingo-sub-944828" slang="en-US" mode="CREATE" translate="no">Re: JSL: ディレクトリ内のファイルと各ファイルの作成日によるフィルタリングとフィルタリングについて</LINGO-SUB>
<LINGO-BODY id="lingo-body-944828" slang="en-US" mode="CREATE">
<P><A href="https://help.jmp.com/help?keyword=JSL%20Creation%20Date&lang=en&os=win&source=application&version=19.1.1" target="_blank" rel="noopener noreferrer">作成日()</A>を使用します</P>
<P><SPAN class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="jthi_0-1777384067549.png" style="width: 400px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="jthi_0-1777384067549.png" style="width: 400px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="jthi_0-1777384067549.png" style="width: 400px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="jthi_0-1777384067549.png" style="width: 400px;"><span class="lia-inline-image-display-wrapper" image-alt="jthi_0-1777384067549.png" style="width: 400px;"><img src="https://us.v-cdn.net/6038925/uploads/images/101357i40F649504D631A24/jthi_0-1777384067549.png" role="button" title="jthi_0-1777384067549.png" alt="jthi_0-1777384067549.png" /></span></SPAN></SPAN></SPAN></SPAN></P>
<P>あなたが目指しているロジックについて何もアイデアを提供していないので、何と組み合わせるべきかについて提案するのは難しいです。</P>
</LINGO-BODY>
<LINGO-SUB id="lingo-sub-944864" slang="en-US" mode="CREATE" translate="no">Re: JSL: ディレクトリ内のファイルと各ファイルの作成日によるフィルタリングとフィルタリングについて</LINGO-SUB>
<LINGO-BODY id="lingo-body-944864" slang="en-US" mode="CREATE">
<P>ありがとう、Jarmo。もう少し詳しく説明させてください。</P>
<P>私がやりたいことは、他のフィルターに加えて、作成日範囲でファイルをフィルタリングすることです(例えば、2026年1月1日から2026年3月31日の間に作成されたファイル)。</P>
<P>Creation Date() 関数を様々な方法で試してみましたが(ユーザーコミュニティの例も含む)、Files In Directory() や Filter Each() と組み合わせる方法が分からず、どれもうまくいきませんでした。</P>
<P>正しいやり方の例を示していただけますか?<BR /><BR /> -アロン</P>
</LINGO-BODY>
<LINGO-SUB id="lingo-sub-944865" slang="en-US" mode="CREATE" translate="no">Re: JSL: ディレクトリ内のファイルと各ファイルの作成日によるフィルタリングとフィルタリングについて</LINGO-SUB>
<LINGO-BODY id="lingo-body-944865" slang="en-US" mode="CREATE">
<P>例えばこんな感じです。</P>
<PRE><CODE class=" language-jsl">Names Default To Here(1);
folderPath = "C:/Users/.../test";
fileListOrig = Files In Directory(folderPath, Recursive(1));
fileList = Filter Each({v, i}, fileListOrig,
Contains(v, "result") &
Ends With(v, ".txt") &
creation date(v) < informat("01052026", "MMDDYYYY") &
creation date(v) >= informat("01052025", "MMDDYYYY") &
File Size(folderPath || v) > 0
);
// Data Cleaning
For( i = 1, i <= N Items( fileList ), i++,
fileName = fileList[i];
...Names Default To Here(1);
folderPath = "C:/Users/.../test";
fileListOrig = Files In Directory(folderPath, Recursive(1));
fileList = Filter Each({v, i}, fileListOrig,
Contains(v, "result") &
Ends With(v, ".txt") &
File Size(folderPath || v) > 0
);
// Data Cleaning
For( i = 1, i <= N Items( fileList ), i++,
fileName = fileList[i];
...
日付を作成し(さまざまな方法があります。日付と時刻の関数を参照してください: JSL構文リファレンス > JSL関数、演算子、およびメッセージ > 日付と時刻の関数)、作成日を含むファイルパスを使用し(パスを作成する際にフォルダが「/」で終わるかどうかを注意)、比較を追加します。
Names Default To Here(1);
folder = Convert File Path("$SAMPLE_DATA");
sdate = Date DMY(1,1,2025);
edate = Date DMY(31,3,2026);<BR />
flist = Files In Directory(folder, Recursive(1));
filtered_files = Filter Each({filename}, flist,
Contains(filename, "Data") &
Ends With(filename, ".jmp") &
File Size(folder || filename) > 0 &
sdate <= Creation Date(folder || filename) <= edate
);