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, 6017 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 ..
Neuester Wissensbeitrag
Internet

Unbemerkt - Telekom Netzumschaltung!

(3)

Erfahrungsbericht von ashnod zum Thema Internet ...

Heiß diskutierte Inhalte
Switche und Hubs
Trunk für 2xCisco Switch. Wo liegt der Fehler? (15)

Frage von JayyyH zum Thema Switche und Hubs ...

DSL, VDSL
DSL-Signal bewerten (13)

Frage von SarekHL zum Thema DSL, VDSL ...