Hallo zusammen,
ich habe einen Ordner mit vielen Textdateien. Nun suche ich ein Programm welches mir von allen Dateien jeweils
- den Dateinamen (Spalte A)
- das Erstellungsdatum (Spalte B)
- das Datum letzter Änderung (Spalte C)
- die erste Zeile der Datei (Spalte D)
- die letzte Zeile der Datei (Spalte E)
in einliest.
Kann mir hierbei jemand helfen?
Hi Thomas,
womit? VB6, VBA oder VBS?
Gruß Rainer
Hallo Rainer,
wenn ich Microsoft Excel 2007 öffne und dort im Entwicklungsbereich „Visual Basic“ öffne finde ich hier „Microsoft Visual Basic 6.5.“
Ich hoffe das hilft weiter.
Danke und Gruß
Thomas
Hallo Thomas,
wenn ich Microsoft Excel 2007 öffne und dort im
Entwicklungsbereich „Visual Basic“ öffne finde ich hier
„Microsoft Visual Basic 6.5.“
ich weiß. Aber lass das weg. Denn es sagt nicht eindeutig aus welche Excel/Wordversion du hast.
Die Angabe von Exceö07 war schon vollkomen in Ordnung. Rainer hat nicht gescrollt o.ä. 
Ich hoffe das hilft weiter.
Lade bitte so eine Textdatei hoch mit fileupload o.ä., s. FAQ:2606
Einige Zeilen reichen, mir ghet es um die Steuerzeichen zwischen den Zeilen und am Dateiende. Manche Textprogramme machen das unterschiedlich.
Gruß
Reinhard
Hallo Reinhard,
stimmt!
Ich habe nur den Text gelesen und ‚Excel‘ in den ‚Stichworten‘ übersehen.
Gruß Rainer
Hi,
Du hattest ja Excel in den Stichworten angegeben, das habe ich übersehen. Sorry.
Reinhard ist ja da, damit halte ich Dein Problem für gelöst. 
Gruß Rainer
Hallo Reinhard,
hier der Link zum Testfile
http://www.file-upload.net/download-4043627/werweiss…
Gruß
Thomas
Hallo Thomas,
http://www.file-upload.net/download-4043627/werweiss…
bin jetzt für 2 Stunden nicht am PC.
@Rainer, wie war das gleich mit Datei auslesen auf einen Streich,
ich muß da immer rumfummeln bis ich das hinkrieg 
Das mit Space, Get usw.?
Danke.
Gruß
Reinhard
Hallo reinhard,
ungetestet, aber die Tippfehler siehst Du ja … 
Option Explicit
Private Sub Command1\_Click()
Dim na As String, txt As String, cnt As Long, ff As Integer, Pos As Long
Dim FirstLine As String, LastLine As String
ff = FreeFile
na = "C:\Testfile.txt"
cnt = FileLen(na)
txt = Space(cnt)
Open na For Binary As #ff
Get #ff, , txt
Close #ff
Pos = InStr(txt, vbCrLf)
FirstLine = Left(txt, Pos - 1)
Pos = InStrRev(txt, vbCrLf)
LastLine = Right(txt, Pos)
End Sub
Datum Erstellung und Datum letzte Änderung findest Du mit FSO, da kennst Du Dich vermutlich besser aus als ich. Ich hab’ Script56.chr noch nicht auf dem Rechner. 
Gruß Rainer
ungetestet, aber die Tippfehler siehst Du ja … 
Hallo Rainer,
danke, irgendwie hatte ich es „schlimmer“ in Erinnerung.
Jetzt wo du es mir wieder mal zum k.A. 8ten mal zeigst 
siegt es „machbar“ aus. Also aus dem Kopf heraus.
Denn die zwei Kommas nach Get #1 habe ich gespeichert, wie gesagt
Space auch. Filelen hätte ich auch von mir aus mit Space verknüpft.
Heureka, ich glaub ich hab’s jetzt gerafft *freu*
Zu vbCrLf, schon klar, aber darauf verlasse ich mich nicht (mehr).
Dafür sah ich letztes Jahr zuviele Textdateien die davon abwichen.
Oder sagen wir mal Dateien im Textformat.
Da sah ich z.B. als Zeilentrenner zweimal 13 nacheinander, ohne die 10.
Manchmal war der Zeilentrenner auch noch in der Datei als letzte Bytefolge.
All das wäre sehr schlecht für deinen Code *lächel*
Das ist der Grund warum ich den Anfrager um einen Beispieltext bat.
PS: Virus gefunden? Alles ist möglich aber ich gehe erstmal davon aus daß Zip da eine Bytefolge erzeugt hat die so aussieht wie eine Virusbytefolge.
Wegen OT kannst du ja das beim nächsten „Treffen“ hier berichten 
Gruß
Reinhard
Nachfrage
http://www.file-upload.net/download-4043627/werweiss…
Hallo Thomas,
ich habe sie eben erst angeschaut.
erste zeile: 1/16/2012 8:08:48 AM.850 [EC_CORE]Adapter 5.6.2.0 ()
letzte zeile: 1/16/2012 8:08:59 AM.835 [ELEMENT]SAP Connection returned to pool.
Für mein Interesse, welches Programm hat diese txt-datei erstellt?
Scheinbar fügt es vorne drei Bytes ein um „seine“ Txt-dateien zu erkennen.
Willst du das mit in der Ergebnisliste haben? Ich glaub nicht aber für mich ist es dazu wichtig zu wissen ob es immer drei bytes sind und ob es immer die gleichen sind.
Nimm mal einen Hex-Editor und schaue dir paar txt-dateien an,
die Bytefolge der drei bytes ist EF BB BF
Gruß
Reinhard
Ordner auslesen, Erstellungsdatum, letzte Änderung
ich habe einen Ordner mit vielen Textdateien. Nun suche ich
ein Programm welches mir von allen Dateien jeweils
- den Dateinamen (Spalte A)
- das Erstellungsdatum (Spalte B)
- das Datum letzter Änderung (Spalte C)
- die erste Zeile der Datei (Spalte D)
- die letzte Zeile der Datei (Spalte E)
in einliest.
Hallo Thomas,
Alt+F11, Einfügen—Modul, nachstehenden Code reinkopieren.
In der Prozedur Start diese beiden Codezeilen an deine Gegebenheiten anpassen:
Const strPfad As String = „K:“
With Worksheets(„Tabelle1“)
Dann den VB-Editor schließen. In Excel Alt+F8, Makro „Start“ ausführen lassen.
Gruß
Reinhard
Option Explicit
Dim FSO As Object
Sub Start()
' Copyright Ra&Re 2012
Dim Zei As Long, objGef As Object
Const strPfad As String = "K:\"
Application.ScreenUpdating = False
With Worksheets("Tabelle1")
.UsedRange.ClearContents
.Range("A1:E1").Value = Split("Name ErstellD ÄnderungsD ErsteZ LetzteZ")
Zei = 1
Set FSO = CreateObject("Scripting.FilesystemObject")
For Each objGef In FSO.getfolder(strPfad).Files
If LCase(FSO.getextensionname(objGef)) = "txt" Then
Call Eintragen(objGef, Zei)
End If
Next objGef
.Columns("A:E").AutoFit
End With
Set FSO = Nothing
Application.ScreenUpdating = True
End Sub
Function Einlesen(PfadDatei) As String
Dim FF As Long, strDatei As String, lngLaenge As Long
FF = FreeFile
lngLaenge = FileLen(PfadDatei)
strDatei = Space(lngLaenge)
Open PfadDatei For Binary As #FF
Get #FF, , strDatei
Close #FF
Einlesen = strDatei
End Function
Sub Eintragen(PfadDatei As Object, Zei)
Dim T, f1
Set f1 = FSO.GetFile(PfadDatei)
On Error Resume Next
T = Split(Einlesen(PfadDatei), vbCrLf)
With Worksheets("Tabelle1")
Zei = Zei + 1
.Cells(Zei, 1) = Mid(PfadDatei, InStrRev(PfadDatei, "\") + 1)
.Cells(Zei, 2) = f1.DateCreated
.Cells(Zei, 3) = f1.DateLastModified
.Cells(Zei, 4) = Mid(T(0), 4)
.Cells(Zei, 5) = T(UBound(T) - 1)
End With
On Error GoTo 0
End Sub
Hallo Reinhard,
ich habe nun einige Dateien geprüft jedoch keine Datei gefunden die diese Folge enthält.
Gruß
Thomas
Hallo Reinhard,
vielen Dank für Deine Hilfe - funktioniert soweit gut.
Allerdings habe noch etwas entdeckt. Die Werte in Spalte „ErsteZ“ werden am Anfang abgeschnitten - z.B. „15/2011 11:26:33…“ richtig wäre aber „12/15/2011 11:26:33…“. In der Spalte „LetzteZ“ ist alles ok.
Könntest Du mir hierbei nochmals helfen.
Gruß
Thomas
Hallo Reinhard,
wegen meiner Rückfrage - ich habe die Stelle gefunden und geändert. Nun habe ich die erste Zeile vollständig.
Cells(Zei, 4) = Mid(T(0), 4) geändert zu
Cells(Zei, 4) = Mid(T(0), 1)
Gruß und nochmals herzlichen Dank.
Thomas
Allerdings habe noch etwas entdeckt. Die Werte in Spalte
„ErsteZ“ werden am Anfang abgeschnitten - z.B. „15/2011
11:26:33…“ richtig wäre aber „12/15/2011 11:26:33…“. In
der Spalte „LetzteZ“ ist alles ok.
Hallo Thomas,
das hängt damit zusammen daß in deiner beispieldatei in der ersten Zeile
diese drei Zeichen

vorne standen.
Ändere diese Zeile
.Cells(Zei, 4) = Mid(T(0), 4)
zu
.Cells(Zei, 4) = T(0)
Gruß
Reinhard