AW: Noch ne Änderung!
16.02.2016 20:10:03
JoWe
Hallo Tom,
ich bleibe bei meinem Ansatz: Mit kopieren und geringen Änderungen war er leicht anzupassen:
Option Explicit
Sub prepare()
Dim objFileSystem
Dim strPath
Dim strFile
Dim strNewFile
Dim objFile
Dim strContent
Dim strSearch01
Dim strReplace01
Dim strSearch02
Dim strReplace02
Dim strSearch03
Dim strReplace03
Dim Zeile As Long, Spalte As Long
Dim InputData As String
strPath = "C:\Temp\" 'anpassen
strFile = "Textdatei_TL_20160211_BSP.txt" 'anpassen
strNewFile = strPath & "changedText1.txt" 'anpassen
strSearch01 = "QTY+79:"
strReplace01 = "QTY+79:" & Chr(13) & Chr(10)
strSearch02 = "LOC+172+"
strReplace02 = "LOC+172+" & Chr(13) & Chr(10)
strSearch03 = "LIN+1'PIA+5+1-1?:"
strReplace03 = "LIN+1'PIA+5+1-1?;" & Chr(13) & Chr(10)
'Suchen und Ersetzen zum Ersten:
'temporäre Datei aus der Originaldatei erstellen
'Suchen und ersetzen mit strSearch01 und strReplace01 durchführen
Set objFileSystem = CreateObject("Scripting.FileSystemObject")
objFileSystem.CopyFile strPath & strFile, strNewFile
Set objFile = objFileSystem.OpenTextFile(strNewFile, 1)
strContent = Replace(objFile.ReadAll, strSearch01, strReplace01)
Set objFile = objFileSystem.OpenTextFile(strNewFile, 2)
objFile.Write (strContent)
objFile.Close
Set objFile = Nothing
Set objFileSystem = Nothing
'Suchen und Ersetzen zum Zweiten:
'temporäre Datei aus der ersten temporären Datei erstellen
'Suchen und ersetzen mit strSearch02 und strReplace02 durchführen
strFile = strPath & "changedText1.txt" 'anpassen
strNewFile = strPath & "changedText2.txt" 'anpassen
Set objFileSystem = CreateObject("Scripting.FileSystemObject")
objFileSystem.CopyFile strFile, strNewFile
Set objFile = objFileSystem.OpenTextFile(strNewFile, 1)
strContent = Replace(objFile.ReadAll, strSearch02, strReplace02)
Set objFile = objFileSystem.OpenTextFile(strNewFile, 2)
objFile.Write (strContent)
objFile.Close
Set objFile = Nothing
Set objFileSystem = Nothing
'Suchen und Ersetzen zum Dritten:
'temporäre Datei aus der zweiten temporären Datei erstellen
'Suchen und ersetzen mit strSearch03 und strReplace03 durchführen
strFile = strPath & "changedText2.txt" 'anpassen
strNewFile = strPath & "changedText3.txt" 'anpassen
Set objFileSystem = CreateObject("Scripting.FileSystemObject")
objFileSystem.CopyFile strFile, strNewFile
Set objFile = objFileSystem.OpenTextFile(strNewFile, 1)
strContent = Replace(objFile.ReadAll, strSearch03, strReplace03)
Set objFile = objFileSystem.OpenTextFile(strNewFile, 2)
objFile.Write (strContent)
objFile.Close
Set objFile = Nothing
Set objFileSystem = Nothing
'jetzt die gesuchten Daten in Tabelle schreiben
Zeile = 2
Spalte = 1
Open strNewFile For Input As #1
Do Until EOF(1)
On Error Resume Next
Line Input #1, InputData
If Left(InputData, 2) = "::" Then GoTo sprung
Sheets("Tabelle1").Cells(Zeile, Spalte) = _
Replace(Left(InputData, InStr(1, InputData, "'") - 1), ":SRW", "")
Zeile = Zeile + 1
sprung:
Loop
Close #1
'Schließlich die überflüssigen temporären "changedText-Dateien" löschen
Dim fileNumber As Integer
Set objFileSystem = CreateObject("Scripting.FileSystemObject")
For fileNumber = 1 To 3
objFileSystem.DeleteFile strPath & "changedText" & fileNumber & ".txt"
Next
Set objFileSystem = Nothing
End Sub
Gruß
Jochen