Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1724to1728
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Bestimmten Teil der TXT-Datei auslesen

Bestimmten Teil der TXT-Datei auslesen
01.12.2019 17:02:45
Sergej
Hallo Leute,
ich habe 3 Speicherorte, wo ich verschieden *.txt Dateien liegen habe.
T:\Daten\2019\München
P:\Daten\2018\Berlin
S:\Kundendaten\2019\Hamburg

Wie kann ich bitte folgendes per VBA erledigen.
In der *.txt-Datei soll nach Zeile gesucht werden, die mit 2019_PRJ beginnt, dann soll der nach = ausgelesen und in Spalte A in letzte freie Zeile eingetragen werden, usw....
So sieht der Eintrag im Beispiel von einer TXT-Datei:
2019_PRJ = P:/Kunden/Projekte 2019/5070 214 - Maximilianschule/07-Angebote/
Als Ergebnis soll rauskommen: P:/Kunden/Projekte 2019/5070 214 - Maximilianschule/07-Angebote/
Herzlichen Dank im Voraus!
Gruß,
Sergej

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: *.bat
01.12.2019 17:18:35
Fennek
Hallo,
schreibe die folgenden Zeilen in eine Text-Datei:

find "2019_PRJ" t:\daten\2019\München\*.txt > c:\temp\Res.txt
find "2019_PRJ" p:\daten\2019\Berlin\*.txt >> c:\temp\Res.txt
find "2019_PRJ" s:\Kundendaten\2019\Hamburg\*.txt >> c:\temp\Res.txt
und speichere sie als find.bat auf dem Desktop. Nach einem Doppelklick sollten alle gesuchten Zeilen in c:\temp\Res.txt stehen. Die Umlaute in München könnten ein Problem sein.
mfg
AW: *.bat
01.12.2019 18:27:08
Sergej
Hallo Fennek,
ich habe dein Löschungsvorschlag getestet. Bei mir wird leider der Gesamtinhalt der Datei in eine Datei zusammengefüht. Die Umlauten würden nicht richtig dargestellt. Eine Lösung über VBA wäre mir viel lieber.
Gruß,
Sergej
Anzeige
AW: *.bat
01.12.2019 19:44:54
Nepumuk
Hallo Sergej,
teste mal:
Option Explicit

Public Sub ReadTextfiles()
    
    Const FILE_PATH_1 As String = "T:\Daten\2019\München\"
    Const FILE_PATH_2 As String = "P:\Daten\2018\Berlin\"
    Const FILE_PATH_3 As String = "S:\Kundendaten\2019\Hamburg\"
    Const SEARCH_TEXT As String = "2019_PRJ = "
    Const FOR_READING As Long = 1, TRISTATE_FALSE As Long = 0
    Const TEXT_FILE As String = "Textdokument"
    
    
    Dim vntPath As Variant, avntLines As Variant, vntLine As Variant
    Dim lngRow As Long
    Dim strText As String
    Dim objFileSystemObject As Object, objFile As Object
    Dim objFolder As Object, objTextStream As Object
    
    Call Columns(1).ClearContents
    
    Set objFileSystemObject = CreateObject(Class:="Scripting.FileSystemObject")
    
    For Each vntPath In Array(FILE_PATH_1, FILE_PATH_2, FILE_PATH_3)
        
        Set objFolder = objFileSystemObject.GetFolder(vntPath)
        
        For Each objFile In objFolder.Files
            
            If objFile.Type = TEXT_FILE Then
                
                Set objTextStream = objFile.OpenAsTextStream(FOR_READING, TRISTATE_FALSE)
                strText = objTextStream.ReadAll
                objTextStream.Close
                avntLines = Split(strText, vbCrLf)
                
                For Each vntLine In avntLines
                    
                    If Left$(vntLine, Len(SEARCH_TEXT)) = SEARCH_TEXT Then
                        
                        lngRow = lngRow + 1
                        Cells(lngRow, 1).Value = Mid$(vntLine, Len(SEARCH_TEXT) + 1)
                        
                    End If
                Next
            End If
        Next
    Next
    
    Set objTextStream = Nothing
    Set objFolder = Nothing
    Set objFileSystemObject = Nothing
    
End Sub

Gruß
Nepumuk
Anzeige
AW: *.bat
01.12.2019 22:27:42
Sergej
Hallo Nepumuk,
herzlichen Dank. Es hat perfekt funktioniert.
Gruß,
Sergej

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige