jsl - Wie öffne ich die neueste Datei mit einer bestimmten Namenskonvention?<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Hallo allerseits,
Wie kann ich mit jsl die neueste Datei in einem Verzeichnis öffnen, das eine bestimmte Namenskonvention enthält? Ich habe den folgenden Code, der die neueste Datei im Verzeichnis öffnen wird:
(
OpenNewestFile = Files In Directory ("C: \ Benutzer \ me \ MyDocuments \");
{t, p} = {0,1};
für (i = 1, i <= n Elemente (OpenNewestFile), i ++,
ti = Datum der letzten Änderung ("C: \ Benutzer \ me \ MyDocuments \" || OpenNewestFile );
Wenn (ti> t, t + ti; p = i));
dt1 = Open ("C: \ Benutzer \ me \ MyDocuments \" | | OpenNewestFile
)
);
Einmal pro Tag wird eine neue Datei mit einem Namen wie "FD_History_2016_08_27_17_36.csv" in das Verzeichnis geschrieben.
Wie kann ich dieses Skript ändern, um die neueste "FD_History_" -Datei zu finden und sie zu öffnen, während andere Dateien im Verzeichnis ignoriert werden?
Danke im Voraus!
Re: jsl - Wie öffne ich die neueste Datei mit einer bestimmten Namenskonvention?In diesem Beispiel wird mit rexx überprüft, ob der Name mit .jmp endet (das $ entspricht dem Zeilenende) oder mit dem Buchstaben a beginnt (das ^ entspricht dem Zeilenanfang). Regex gibt einen fehlenden Wert zurück, wenn die Übereinstimmung fehlschlägt. Die RemoveFrom-Funktion löscht störende Elemente aus der Liste. Die for-Schleife wird rückwärts ausgeführt, sodass die gelöschten Elemente den Teil der Liste nicht ändern, der noch nicht untersucht wurde. (Wenn ein Element gelöscht wird, ändern sich die Indizes nachfolgender Elemente.)
NULL sagt Regex, den übereinstimmenden Text nicht zu ersetzen. IGNORECASE teilt Regex mit, dass Jmp und Jmp übereinstimmen sollten.
x = filesindirectory ("$ desktop");
für (i = Nitems (x), i> = 1, i--,
if (ismissing (Regex) (x . ".Jmp $ | ^ a" , NULL, IGNORECASE)), entfernen von (x, i))
);
show (x);
x = {"animated.gif", "stories.jmp", "Unbenannt 3.jmp"};
Sie können das letzte Änderungsdatum in diese Schleife einbauen oder nach dieser in einer separaten Schleife halten.
Betreff: jsl – Wie öffne ich die aktuellste Datei mit einer bestimmten Namenskonvention?Hallo,
Ich habe ein ähnliches Problem, aber in diesem Fall ändert sich der Ordnername pro Arbeitswoche.
Die Ordnerstruktur ist:
\\Hauptordner\ 202503 \PPT_ 12345 \Unterordner\Indikatoren.xlsx.
Der Hauptordner enthält 3 oder 4 „JJJJWW“-Unterordner – z. B. 202503, 202504, 202505 und die mit dem Ordner PPT_ 12345 verknüpfte Nummer wird jede Woche zufällig vergeben.
Ich habe es geschafft, eine Liste aller JJJJWW-Unterordner {"202512", "202513", "202514"} zu erhalten, aber ich muss den neuesten Ordner (maximale Anzahl) auswählen, in diesem Fall "202514".
Dann muss ich nur den PPT-Ordner auswählen (es gibt andere Unterordner, aber nur einen mit dem Namen „PPT_...“).
Könnten Sie mir hier helfen?
Danke
Betreff: jsl – Wie öffne ich die aktuellste Datei mit einer bestimmten Namenskonvention?allfiles = Files In Directory( "c:/" );
show(N Items( allfiles )); // 15 or so
dirlist = Filter Each( {f}, allfiles, Is Directory( "c:/" || f ) );
show(N Items( dirlist )); // 12 or so
sorted = Reverse( Sort List( dirlist ) ); // biggest first
filtered = Filter Each( {f}, sorted, Starts With( f, "Prog" ) );
// {"ProgramData", "Program Files (x86)", "Program Files"}
Bearbeiten: Den Pfad voranstellen
Mehr dazu: JMP 16-Ergebnisse, siehe oben. Neuere JMP-Versionen können mit c:/ möglicherweise besser funktionieren – sie filtern Dateisystemobjekte vor, die Sie nicht sehen möchten. Das Prinzip ist jedoch dasselbe: Verwenden Sie die JSL-Funktionen, um das Gewünschte zu behalten und den Rest herauszufiltern. Die umgekehrte Sortierung sollte das Datum an Position 1 setzen.
Betreff: jsl – Wie öffne ich die aktuellste Datei mit einer bestimmten Namenskonvention?Danke, Craige. Entschuldige die späte Antwort. Es funktioniert gut. Einziger Nachteil: Der Ordner enthält viele Unterordner und die Funktion „Dateien im Verzeichnis“ benötigt lange. Trotzdem vielen Dank für deine Hilfe.