Nach Erstellungsdatum Und Dateinamen sortieren
Da der anderen Beitrag als Gelöst markiert ist, mach ich hier einen Neuen auf.
Bastla hatte mir einen schönen Code geliefert.
Problemstellung:
Viele viele Dateien mit folgendem Format:
File1.999
File1.998
File1.899
Diese sollen via VBS sortiert werden.
Klappt auch wunderbar.
Nur wird ja jetzt immer die "höchste" Datei ausgegeben, was ja im Grunde richtig ist.
Nur hat sich meine Problemstellung in so weit geändert, das jetzt ein "Versionssprung" bevorsteht.
d.h.
es kommt dann zu:
file1.001
file1.999
file1.998
Jetzt gibt er mir File1.999 als aktuelles File aus.
Ich müsste jetzt noch den Parameter objFile.DateCreated mit integrieren.
Bloß wo?
bei Ext = code..... klappts nicht.
Bastla hatte mir einen schönen Code geliefert.
Problemstellung:
Viele viele Dateien mit folgendem Format:
File1.999
File1.998
File1.899
Diese sollen via VBS sortiert werden.
For Each DateiArt In DateiArten
D = ""
M = "000"
For Each File In Folder.Files
If LCase(fso.GetBaseName(File.Name)) = DateiArt Then
Ext = fso.GetExtensionName(File.Name)
If Ext > M Then
D = File.Name
M = Ext
End If
End If
Next
If D <> "" Then
Res = Res & vbCrLF & D
Else
Res = Res & vbCrLF & "Es wurde keine """ & DateiArt & """-Datei gefunden!"
End If
Next
Klappt auch wunderbar.
Nur wird ja jetzt immer die "höchste" Datei ausgegeben, was ja im Grunde richtig ist.
Nur hat sich meine Problemstellung in so weit geändert, das jetzt ein "Versionssprung" bevorsteht.
d.h.
es kommt dann zu:
file1.001
file1.999
file1.998
Jetzt gibt er mir File1.999 als aktuelles File aus.
Ich müsste jetzt noch den Parameter objFile.DateCreated mit integrieren.
Bloß wo?
bei Ext = code..... klappts nicht.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 110354
Url: https://administrator.de/contentid/110354
Ausgedruckt am: 22.11.2024 um 14:11 Uhr
5 Kommentare
Neuester Kommentar
Hallo deeboo!
Das sähe dann so aus (unter der Annahme, dass es genügen müsste, nach dem Erstellungsdatum - beinhaltet ja auch die Uhrzeit - zu sortieren):
[Edit]
Sollte übrigens tatsächlich gewünscht sein, alle an einem Tag erstellten Dateien nach dem Dateityp zu ordnen, dann so:
In diesem Fall wird nur das Erstellungsdatum (nicht auch die Uhrzeit) berücksichtigt.
[/Edit]
[OT]
Zwei Anmerkungen:
Grüße
bastla
Das sähe dann so aus (unter der Annahme, dass es genügen müsste, nach dem Erstellungsdatum - beinhaltet ja auch die Uhrzeit - zu sortieren):
For Each DateiArt In DateiArten
D = ""
M = 0
For Each File In Folder.Files
If LCase(fso.GetBaseName(File.Name)) = DateiArt Then
If File.DateCreated > M Then
D = File.Name
M = File.DateCreated
End If
End If
Next
If D <> "" Then
Res = Res & vbCrLF & D
Else
Res = Res & vbCrLF & "Es wurde keine """ & DateiArt & """-Datei gefunden!"
End If
Next
Sollte übrigens tatsächlich gewünscht sein, alle an einem Tag erstellten Dateien nach dem Dateityp zu ordnen, dann so:
For Each DateiArt In DateiArten
D = ""
M = ""
For Each File In Folder.Files
If LCase(fso.GetBaseName(File.Name)) = DateiArt Then
DCr = File.DateCreated
Dat = Mid(DCr,7,4) & Mid(DCr,3,2) & Left(DCr,2) 'erzeugt Datum im Format JJJJMMTT
Ext = fso.GetExtensionName(File.Name)
Kriterium = Dat & Ext
If Kriterium > M Then
D = File.Name
M = Kriterium
End If
End If
Next
If D <> "" Then
Res = Res & vbCrLF & D
Else
Res = Res & vbCrLF & "Es wurde keine """ & DateiArt & """-Datei gefunden!"
End If
Next
[/Edit]
[OT]
Zwei Anmerkungen:
- Einen als "gelöst" gekennzeichenten Beitrag kannst Du selbst (solange er nicht geschlossen ist) wieder auf "nicht gelöst" setzen.
- Wenn Du nur das Bruchstück eines Codes postest, wird es für Hilfswillige unnötig aufwändig, die fehlenden Teile (für einen Test) selbst hinzuzufügen - auch wenn es, wie hier, nur um ein Array ("DateiArten") und ein Objekt ("Folder") geht. Zumindest ein Link auf den vorherigen Thread wäre angebracht gewesen ...
Grüße
bastla
Hallo deeboo!
Die Anmerkung hinsichtlich "gelöst" war nicht als Aufforderung, sondern tatsächlich nur als Hinweis gedacht - die Einschätzung, ob eine solche Statusänderung zeitnah genug wäre, musst(est) Du natürlich selbst treffen ...
Zum Vergleich von "DateCreated" mit einer Variablen (hier: "M"): Da Datums- und Zeitwerte ja nur besonders interpretierte Zahlen darstellen, benötigst Du eine numerische Variable (daher oben M=0).
Grüße
bastla
Die Anmerkung hinsichtlich "gelöst" war nicht als Aufforderung, sondern tatsächlich nur als Hinweis gedacht - die Einschätzung, ob eine solche Statusänderung zeitnah genug wäre, musst(est) Du natürlich selbst treffen ...
Zum Vergleich von "DateCreated" mit einer Variablen (hier: "M"): Da Datums- und Zeitwerte ja nur besonders interpretierte Zahlen darstellen, benötigst Du eine numerische Variable (daher oben M=0).
Grüße
bastla