Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Bestimmten Teil der TXT-Datei auslesen

Forumthread: 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
Anzeige

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
Anzeige
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
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
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige