Ich bin neu in VBScript und ich habe Probleme mit etwas, das relativ einfach sein sollte. Ich habe zwei sehr große Textdateien, die ich basierend auf bestimmten Zeilen in den Dateien in viele verschiedene Textdateien aufteilen muss. Hier ist ein Beispiel der Textdatei:VBScript, um sehr große Textdateien zu teilen
F1 SA1056-540X0
F21 All_Tools
F3 123229 99819 30MIL
F3 317229 99819 30MIL
F5 0 0
F51 0 0
F6 136103 204045
F7 0 0
F8 265094 249728 90000 1 N N 455229
F9 C1A
F8 265094 208328 90000 1 N N 455229
F9 C1B
F12 0.125000 250 0
F1 SA1056-550X1
F21 All_Tools
F3 123229 99819 30MIL
F3 317229 99819 30MIL
F5 0 0
F51 0 0
F6 136103 204045
F7 0 0
F8 265094 249728 90000 1 N N 455229
F9 C1A
F8 265094 208328 90000 1 N N 455229
F9 C1B
F12 0.125000 250 0
Die F1-Linie wird den Namen der neuen Textdatei zur Verfügung stellen, während die F12 Zeile die letzte Zeile in der neuen Textdatei sein. Das nächste F1 wird die nächste Datei sein und so weiter. Hier ist mein Code. Läuft die ReadLine-Methode nicht in die nächste Zeile?
Dim fso, newFile, folderPath
folderPath = "C:\MyDataTest"
Set fso = CreateObject("Scripting.FileSystemObject")
For Each file In fso.GetFolder(folderPath).Files
Do While Not file.OpenAsTextStream.AtEndOfStream
strLine = file.OpenAsTextStream.ReadLine
strChar = file.OpenAsTextStream.Read(3)
Do While strChar <> "F12"
If strChar = "F1 " Then
fileName = Replace(strLine, "F1 ", "")
newFilePath = folderPath + "\" + fileName + ".txt"
Set newFile = fso.CreateTextFile(newFilePath, True)
newFile.WriteLine(strLine)
strLine = file.OpenAsTextStream.ReadLine
strChar = file.OpenAsTextStream.Read(3)
Else
newFile.WriteLine(strLine)
strLine = file.OpenAsTextStream.ReadLine
strChar = file.OpenAsTextStream.Read(3)
End If
Loop
newFile.WriteLine(strLine)
newFile.Close
loop
Next
Dies erstellt die Datei und schreibt das erste F1 Linie und dann erhalte ich eine Berechtigung verweigert Laufzeitfehler auf dem „Set newFile = fso.CreateTextFile (newFilePath, True)“ Zeile. Ich bin mir sicher, dass mir ein einfacherer Weg fehlt.
Vielen Dank!