ygeli Geschrieben 21. August 2003 Geschrieben 21. August 2003 Hallo Leute, hab ein kleines Problem mit VB. Komm einfach nicht mehr weiter. Könnt ihr mir helfen???? Mein erstellter Syntax: Private Sub Form_Load() Dim dat As Date Dim tage As Date Dim Zeitangabe dat = Date tage = DateAdd("D",-2,dat) Zeitangabe = Format(FileDateTime("*.txt,"), "DD.MM.YY") Open "./*.txt" For Input As #1 Do While Not EOF(1) If (Zeitangabe < tage) Then Kill "*.txt" End If Loop Close #1 End Sub Dieser Quellcode sollte mir es ermöglichen, Dateien im gleichen Verzeichnis wie die batch-Datei, die älter 2 Tage sind zu löschen. Ich will diesen Quellcode in eine batch-Datei einbinden, so dass ich bei doppelklick auf die batch-Datei das Programm über VB ausführen lassen kann. Doch das Ding will nicht!!!:confused: Hat jemand vielleicht eine Idee??? Wäre nett, wenn mir jemand weiterhelfen könnte. Vielleicht mit den jeweiligen Korrekturen meines Quellcodes.:mod: Ein dickes Dankeschön im voraus.:uli Zitieren
-roTekuGeL- Geschrieben 22. August 2003 Geschrieben 22. August 2003 Original geschrieben von ygeli Private Sub Form_Load() Dim dat As Date Dim tage As Date Dim Zeitangabe dat = Date tage = DateAdd("D",-2,dat) Zeitangabe = Format(FileDateTime("*.txt,"[\color]), "DD.MM.YY") Open "./*.txt" For Input As #1[\color] Do While Not EOF(1) If (Zeitangabe < tage) Then Kill "*.txt" End If Loop Close #1 End Sub Also vielleicht kann ich dir helfen... aber erstmal musst du mir erklären warum du da oben *.txt reinschreibst (das , hinter *.txt könnte falsch sein)... woher soll VB denn wissen welche Datei du damit meinst. Und wieso hast du bei dem Open ein ./ vor die Datei gesetzt? Nachtrag: als Anhang an den alten Thread (hier) hätte es auch getan... Zitieren
maxim_42 Geschrieben 22. August 2003 Geschrieben 22. August 2003 In jedem Fall musst du in einer Schleife für jede Datei im Verzeichniss prüfen, ob sie gelöscht werden soll. z.B. dim f as File dim fold as Folder fold.path= "c:\......" 'Zu bearbeitender Ordner for each f in fold 'f.Type prüfen ' f.DateLastModified prüfen ' Gegebenenfalls Dateinamen in eine Liste mit zu löschenden Dateien next 'Alle Dateien in der Liste löschen. Der Umweg über die Liste deshalb, weil das Entfernen eines Mitglieds einer Collection, während man diese Collection mit foreach durchläuft, unsicher ist. Zitieren
Nerd Geschrieben 27. August 2003 Geschrieben 27. August 2003 Const KILLDAYS = 2 Const KILLTYP = "*.txt" Const KILLDEBUG = True Sub Main() Call runKiller(App.Path) End Sub Private Sub runKiller(ByRef strPfad As String) Dim strTmpFilename As String ' liste der killtyps-files strPfad = IIf(Right(strPfad, 1) = "\", strPfad, strPfad + "\") strTmpFilename = Dir(strPfad + KILLTYP, 63) Do While CBool(Len(strTmpFilename)) '// datei wird geprüft und ggf. gelöscht If proofDate(strTmpFilename) Then If KILLDEBUG Then MsgBox strPfad + strTmpFilename Else Call Kill(strPfad + strTmpFilename) End If End If strTmpFilename = Dir Loop End Sub Private Function proofDate(ByRef strFilename As String) As Boolean proofDate = proofDate2(strFilename, Now) End Function Private Function proofDate2(ByRef strFilename As String, ByVal dCurrentDate As Date) As Boolean '// tag von heute + 2 - prüfdatum If Format((DateAdd("D", 2, dCurrentDate) - FileDateTime(strFilename)), "D") < KILLDAYS Then proofDate2 = True Else proofDate2 = False End If End Function // :uli die meisten aus diesem forum haben ihren beruf verfehlt... fyi. http://www.keeptalking.de ist ein richtiges forum für entwickler :-) Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.