Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Nach Erstellungsdatum Und Dateinamen sortieren

Frage Entwicklung VB for Applications

Mitglied: deeboo

deeboo (Level 1) - Jetzt verbinden

02.03.2009, aktualisiert 18.10.2012, 6089 Aufrufe, 5 Kommentare

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.

01.
For Each DateiArt In DateiArten 
02.
    D = "" 
03.
    M = "000" 
04.
    For Each File In Folder.Files 
05.
        If LCase(fso.GetBaseName(File.Name)) = DateiArt Then 
06.
            Ext = fso.GetExtensionName(File.Name) 
07.
 
08.
 
09.
    		If  Ext > M Then 
10.
                D = File.Name 
11.
                M = Ext 
12.
            End If 
13.
        End If 
14.
    Next 
15.
    If D <> "" Then 
16.
        Res = Res & vbCrLF & D 
17.
    Else 
18.
        Res = Res & vbCrLF & "Es wurde keine """ & DateiArt & """-Datei gefunden!" 
19.
    End If 
20.
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.
Mitglied: bastla
02.03.2009 um 19:19 Uhr
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):
01.
For Each DateiArt In DateiArten 
02.
    D = "" 
03.
    M = 0 
04.
    For Each File In Folder.Files 
05.
        If LCase(fso.GetBaseName(File.Name)) = DateiArt Then 
06.
    	    If  File.DateCreated > M Then 
07.
                D = File.Name 
08.
                M = File.DateCreated 
09.
            End If 
10.
        End If 
11.
    Next 
12.
    If D <> "" Then 
13.
        Res = Res & vbCrLF & D 
14.
    Else 
15.
        Res = Res & vbCrLF & "Es wurde keine """ & DateiArt & """-Datei gefunden!" 
16.
    End If 
17.
Next
[Edit]
Sollte übrigens tatsächlich gewünscht sein, alle an einem Tag erstellten Dateien nach dem Dateityp zu ordnen, dann so:
01.
For Each DateiArt In DateiArten 
02.
    D = "" 
03.
    M = "" 
04.
    For Each File In Folder.Files 
05.
        If LCase(fso.GetBaseName(File.Name)) = DateiArt Then 
06.
            DCr = File.DateCreated 
07.
            Dat = Mid(DCr,7,4) & Mid(DCr,3,2) & Left(DCr,2) 'erzeugt Datum im Format JJJJMMTT 
08.
            Ext = fso.GetExtensionName(File.Name) 
09.
            Kriterium = Dat & Ext 
10.
            If  Kriterium > M Then 
11.
                D = File.Name 
12.
                M = Kriterium 
13.
            End If 
14.
        End If 
15.
    Next 
16.
    If D <> "" Then 
17.
        Res = Res & vbCrLF & D 
18.
    Else 
19.
        Res = Res & vbCrLF & "Es wurde keine """ & DateiArt & """-Datei gefunden!" 
20.
    End If 
21.
Next
In diesem Fall wird nur das Erstellungsdatum (nicht auch die Uhrzeit) berücksichtigt.
[/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 ...
[/OT]

Grüße
bastla
Bitte warten ..
Mitglied: deeboo
03.03.2009, aktualisiert 18.10.2012
Hallo bastla.

Sorry.
Gelobe Besserung.
Werde das morgen mal testen.
01.
... 
02.
If  File.DateCreated > M Then 
03.
...
Hatte ich auch schon probiert. Aber scheinbar nicht richtig.
Werd morgen nochmal schauen. Jetzt ist Feierabend. ;)

P.S. Offtopic konnte zwar im gelösten posten. Dennoch war er als gelöst markiert. Und da schaut ,glaub ich, keiner so schnell wieder rein.
Aber zum Bezug für diejenigen, die sich auch einmal auf der Suche nach dieser oder einer ähnlichen Problemlösung hierher verirren.
http://www.administrator.de/forum/dateien-speziell-sortieren-vbs-109882 ...

Bis morgen.
lg
deeboo
Bitte warten ..
Mitglied: bastla
03.03.2009 um 07:09 Uhr
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
Bitte warten ..
Mitglied: deeboo
03.03.2009 um 09:13 Uhr
War schon auf dem richtigen Weg. Hätte nur alles ändern müssen, nicht nur den einen Punkt. Siehe mein letzter Post.
Aber irgendwie klappt noch nicht so richtig. Er nimmt immer die File.002. Sehe aber auch grad den Fehler nicht.

Ich habe mir in meinen Ordner 3 Bsp. Dateien gelegt.

test.006 (Date modified: 3/2/2009 3:45 PM)
test.002 (Date modified: 3/3/2009 9:45 AM)
test.956 (Date modified: 3/1/2009 2:34 PM)

Und währendessen ich diesen Post schreibe, fällt mir auf, ich könnts ja mal mit: "DateLastModified" versuchen. *lol* Und siehe da.....

Werds mal weiter testen, bevor ich den Beitrag schliesse.
thx und einen guten Start in den Dienstag.
Bitte warten ..
Mitglied: deeboo
05.03.2009 um 10:00 Uhr
Danke Euch noch einmal. Hat alles wunderbar geklappt...

lg
deeboo
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
gelöst Erstelldatum vieler Dateien ändern (aus Dateinamen abgeleitet) (11)

Frage von X-Spezi zum Thema Batch & Shell ...

Batch & Shell
Umbenennen entpackter Dateien nach Dateinamen der rar- zip-Datei

Frage von windows-nutzer zum Thema Batch & Shell ...

Batch & Shell
Datei nach Erstellungsdatum verschieben (2)

Frage von Kugelschreiber1 zum Thema Batch & Shell ...

Microsoft Office
Access 2016 - Ip Adressen sortieren (5)

Frage von NorbertKn zum Thema Microsoft Office ...

Neue Wissensbeiträge
Sicherheits-Tools

Sicherheitstest von Passwörtern für ganze DB-Tabellen

(1)

Tipp von gdconsult zum Thema Sicherheits-Tools ...

Peripheriegeräte

Was beachten bei der Wahl einer USV Anlage im Serverschrank

(8)

Tipp von zetboxit zum Thema Peripheriegeräte ...

Windows 10

Das Windows 10 Creators Update ist auf dem Weg

(6)

Anleitung von BassFishFox zum Thema Windows 10 ...

Heiß diskutierte Inhalte