[VB-Script] Array via Textdatei füllen, erstellte Datei unter Name_x erstellen

amn.ssy

Erfahrenes Mitglied
Hallo,

der nachfolgencde Code hat den Zweck in einem Verzeichnis alle Textdateien zu durchlaufen, nach bestimmten begriffen zu suchen und die jeweile Zeile mit dem gefundenen Begriff in eine neue Textdatei zu schreiben. Erste Tests haben gezeigt: Es funktionier :)

Code:
InDir = "C:\convpdf2text\converted" 			'Zu lesender Ordner
InExt = "txt" 					'Dateityp 
OutFile = "C:\convpdf2text\reduc\reduc.txt" 		'Zu schreibender Ordner/Datei 
Search = Array("BATCH No","MANUFACTURING DATE","Average","Water","Dissolution","Disintegration" ) ' Liste 
Set fso = CreateObject("Scripting.FileSystemObject") 
 
Set I = fso.GetFolder(InDir) 
Set E = fso.CreateTextFile(OutFile, True) 			'Ausgabedatei - Bestehende überschreiben) 
 	
For Each File In I.Files 				'Alle Dateien im Ordner durchlaufen
    If LCase(fso.GetExtensionName(File)) = InExt Then 	'wenn vom vorgegebenen Typ 
        T = Split(File.OpenAsTextStream.ReadAll, vbCrLF) 	'den Dateiinhalt zeilenweise in ein Array einlesen 
        U = Ubound(T) 
        For i = 0 To U 					'Alle Zeilen des Textes durchgehen
            For Each ErrMsg In Search 			'und jeweils mit allen Searchstrings vergleichen 
                If InStr(1, T(i), ErrMsg, vbTextCompare) > 0 Then 	'Wenn ein String in der Zeile enthalten ist
                    E.WriteLine T(i) 				'Zeile in die Ausgabedatei schreiben und 
                    Exit For 					'Überprüfung beenden (Zeile erledigt)
                End If 
            Next 
        Next 
    End If 
  Next 
E.Close

Um etwas flexibler zu sein würde ich das Array gerne in einer Textdatei als Liste führen und je nach Bedarf die entsprechende auswählen.
Zur Zeit gebe ich außerdem die zu speichernde Datei hardcodiert an! Wie ist es möglich, daß sich das Teil den Namen er aktuell geöffneten Datei merkt und späten den "komprimierten" Text und diesem Namen_x speichert?

Danke schon mal im Voraus für Ideen, Anregungen, ...

Gruß
_opiWahn_
 
Zurück