Ciao a tutti,
Sto lavorando con JSL per raccogliere e filtrare i file da una directory.
La logica di filtraggio di base (nome, estensione, dimensione) funziona correttamente, ma sto riscontrando problemi quando cerco di aggiungere un filtro affidabile per la data di creazione.
Questo codice trova correttamente i file .txt non vuoti i cui nomi contengono "result":
</CODE></PRE>
<P>Qual è il metodo consigliato o affidabile in JSL per filtrare i file in base alla data di creazione su Windows quando si combinano le opzioni "File nella directory" e "Filtra per ciascuno"?<BR /><BR /> Grazie,</P>
<BR />
</LINGO-BODY>
<LINGO-LABS id="lingo-labs-944809" slang="en-US" mode="CREATE">
<LINGO-LABEL>Automazione e scripting</LINGO-LABEL>
<LINGO-LABEL>Accesso ai dati</LINGO-LABEL>
</LINGO-LABS>
<LINGO-SUB id="lingo-sub-944828" slang="en-US" mode="CREATE" translate="no">Oggetto: Re: JSL: Filtrare i file per data di creazione con File nella directory e filtrare ciascuno</LINGO-SUB>
<LINGO-BODY id="lingo-body-944828" slang="en-US" mode="CREATE">
<P>Utilizza <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">la data di creazione()</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>È difficile dare suggerimenti su con cosa abbinarlo, dato che non hai fornito alcuna idea sulla logica che intendi seguire.</P>
</LINGO-BODY>
<LINGO-SUB id="lingo-sub-944864" slang="en-US" mode="CREATE" translate="no">Oggetto: Re: JSL: Filtrare i file per data di creazione con File nella directory e filtrare ciascuno</LINGO-SUB>
<LINGO-BODY id="lingo-body-944864" slang="en-US" mode="CREATE">
<P>Grazie Jarmo, lascia che ti chiarisca.</P>
<P>Quello che sto cercando di fare è filtrare i file in base a un intervallo di date di creazione, oltre agli altri filtri (ad esempio, file creati tra il 1° gennaio 2026 e il 31 marzo 2026).</P>
<P>Ho provato a usare Creation Date() in diversi modi (inclusi gli esempi della community di utenti), ma non ero sicuro di come combinarlo con Files In Directory() e Filter Each(), quindi nessuno di questi ha funzionato.</P>
<P>Potresti per favore mostrarmi un esempio di come si dovrebbe fare correttamente?<BR /><BR /> -Aron</P>
</LINGO-BODY>
<LINGO-SUB id="lingo-sub-944865" slang="en-US" mode="CREATE" translate="no">Oggetto: Re: JSL: Filtrare i file per data di creazione con File nella directory e filtrare ciascuno</LINGO-SUB>
<LINGO-BODY id="lingo-body-944865" slang="en-US" mode="CREATE">
<P>Qualcosa del genere:</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];
...
Crea le tue date (in diversi modi, vedi le funzioni data-ora: Riferimento alla sintassi JSL > Funzioni, operatori e messaggi JSL > Funzioni di data e ora ), usa il percorso del file con la data di creazione (nota se la tua cartella termina con "/" o meno quando crei il percorso) e aggiungi il confronto
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
);