[VBS] Textdatei - jede Zeile an bestimmten Stellen kürzen

amn.ssy

Erfahrenes Mitglied
Hallo,

via Batch und einem VBS durchlaufe ich aus PDf generierte Textdateien u.a. mit dem Ziel die dateien zu klassifizieren.
Eine Liste zu erstellen, die besagt, welches "Produkt" sich in welcher Datei befindet bekomm' ich mit Findstr. ganz gut hin und mit ein wenig Regex bekomme ich die leiste auch weit gehend bereinigt.
Was mir jedoch noch fehlt und ich keinen richtigen Ansatz finde ich zum Einen
- jede Zeile zum Beginn (pauschal) und am Ende (indiviuell) zu kürzen
und zum Anderen
- die "doppelten" Zeilen (ergibt sich aus Dateinamen) zu löschen

Hierzu habe ich bislang folgenden Code

a) Batch
PHP:
@echo off & setlocal
set root=%~dp0
set inp=%~dp0input\
set out=%~dp0output\
set sto=%~dp0store\
set wks=%~dp0temp\
set pro=%~dp0prog\
set uti=%pro%utils\bin\
for %%f in (%inp%*.pdf) do (
    %pro%pdf2text -layout %%f & move %%f %sto% & move %inp%*.txt %wks%
)

FINDSTR /G:"%pro%product.txt" %wks%*.txt > "%wks%tmp.tmp"
cscript //nologo "%pro%cleanprolist.vbs" "%wks%tmp.tmp" "%out%prolist.txt"

pause
rem del %wks%*.* /q

b) VBS
PHP:
InFile = WScript.Arguments(0)
OutFile = WScript.Arguments(1)

Set fso = CreateObject("Scripting.FileSystemObject")

If fso.GetFile(InFile).Size = 0 Then
    fso.CreateTextFile(OutFile)
    WScript.Quit
End If

T = fso.OpenTextFile(WScript.Arguments(0)).ReadAll

With New RegExp

	.Global = True
	.IgnoreCase = True
	.Multiline = True
    	
	
    .Pattern = "[. ]{2,}"
    T = .Replace(T, " ")

    .Pattern = "( | :|,|;|Text|01|Name of|Product|Page)"
    T = .Replace(T, "")

    .Pattern = "[:]{2,}"
    T = .Replace(T, ";")

End With

fso.CreateTextFile(WScript.Arguments(1), True).Write(T
Versuchweise habe ich zum Beginn des Script mal
Code:
 T = Right(T, Len(T) - 26)
eingefügt.
Das funktioniert auch aber eben nur für eine Zeile!
Code:
 T = Left(T, Len(T) - 10)
funktioniert nicht!
(10 ich nur ein Beispiel)
Ich gehe mal davon aus, daß die Datei zeilenweise eingelesen werden muß, um zuerst den kompletten String zu kürzen und anschließen den RegexTeil auszuführen.

Würd' mich freuen wenn mir jemenad weiterhelfen kann.

LG
_opiwahn_
 
Zuletzt bearbeitet:
Zurück