Hallo Leuts',
bin neuling in VBS.
ich bitte um Hilfe bei folgendem Problem:
Es wird eine HTML Datei eingelesen. Diese Datei wird durchsucht nach einem im HTML Code eingebauten Marker "<!-- <Ich bin ein Marker> -->". Die Funktion InStr() liefert mir den Startpunkt in der gesamten Zeichenkette.
So weit funktioniert das Skript. Jedoch möchte ich nur den Textbereich bis zum Schließenden Tag <!-- </Ich bin ein Marker> --> in ein Array speichern.
In meiner IF THEN Schleife erhalte ich den Start und Endpunkt des gesuchten Textbereichs. Jedoch gibt es den Marker mehrmals in dem eingelesenen String, so dass hier eine weitere Schleife die einzelnen gesuchten "Textbereiche" in das Array schreiben müsste.
Es soll eine neue Ausgabedatei erzeugt, die genau die gesuchten Textbereiche enthält.
Kurz: Wer kann mir zeigen, wie ich einen String in genau die gesuchten Textbereiche Splitte?
bin neuling in VBS.
ich bitte um Hilfe bei folgendem Problem:
Es wird eine HTML Datei eingelesen. Diese Datei wird durchsucht nach einem im HTML Code eingebauten Marker "<!-- <Ich bin ein Marker> -->". Die Funktion InStr() liefert mir den Startpunkt in der gesamten Zeichenkette.
So weit funktioniert das Skript. Jedoch möchte ich nur den Textbereich bis zum Schließenden Tag <!-- </Ich bin ein Marker> --> in ein Array speichern.
In meiner IF THEN Schleife erhalte ich den Start und Endpunkt des gesuchten Textbereichs. Jedoch gibt es den Marker mehrmals in dem eingelesenen String, so dass hier eine weitere Schleife die einzelnen gesuchten "Textbereiche" in das Array schreiben müsste.
Es soll eine neue Ausgabedatei erzeugt, die genau die gesuchten Textbereiche enthält.
Kurz: Wer kann mir zeigen, wie ich einen String in genau die gesuchten Textbereiche Splitte?
Code:
'Mit Option Explicit ist festgelegt, das nur Variable im Skript benutzt werden, die mit DIM-Anweisungen deklariert sind.
Option Explicit
'Deklaration der Variablen***************************************************
Dim WSHShell, objFSO, objNetwork, WorkingFolder, Konfiguration, Title
Dim f, ScriptOrdner, Frage
Dim FileMonitor, FilePub
Dim Zeile
Dim FileIn, FileZ, FileOut
Dim Wochenplan_1, Wochenplan_2
Dim Datei, FileString, Txt, i, arrSort, arrTest(), oArgs
'Einzufügende Zeile
Zeile1 = "<table border=""0"" width=""100%""><colgroup><col width=""50%""><col width=""50%""></colgroup><tr><td>"
'Erzeugen von Objektreferenzen************************************************
Set WSHShell = WScript.CreateObject("WScript.Shell")
Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")
Set objNetwork = WScript.CreateObject("WScript.Network")
'Variable *TEST****************************************************************
Title = objFSO.GetBaseName(WScript.ScriptName)
MsgBox "Script Name "+ Title
' WorkingFolder ermitteln --- hier befindet sich das Script
Set f = objFSO.GetFile(WScript.ScriptFullName)
ScriptOrdner = f.ParentFolder
MsgBox "Script Ordner "+ ScriptOrdner
'******************************************************************************
'Festlegen des Ausgabe Dateinamens
FileMonitor = "Monitor_2.html"
'Festlegen der Einzulesenden Dateinamen
FilePub = "ausgabe.html"
'******************************************************************************
'Prüfen ob Datei vorhanden*****************************************************
If objFSO.FileExists(FilePub) Then
'Ja, Datei zum Lesen öffnen
' Wert 1= Datei wird zum lesen geöffnet
' Wert 2= Datei wird zum schreiben geöffnet
' Wert 8= Datei wird zum Anhängen von Text geöffnet
Set FileIn = objFSO.OpenTextFile("C:\Monitor\" + FilePub, 1, False)
'Datei auslesen. Text String wird zurückgeliefert
' ReadAll() liest die komplette Textdatei
' ReadLine() liest eine Zeile
' Read(AnzahlZeichen)
FileString = FileIn.ReadAll()
FileIn.close()
'TEST Inhalt ausgeben
WScript.Echo FileString
Else
WScript.Echo "Datei" & FilePub()&" nicht gefunden!"
End If
'Nach <!-- </Ich bin ein Marker> --> suchen
' InStr() liefert die genaue Strartposition des gesuchten Zeichen, Wortrs zurück
' InStr(Startposition, Zeichenkette, SuchText, Vergleichsart)
' Startposition: gibt a, ab welchem Zeichen der String durchsucht werden soll
' Zeichenkette: der zu durchsuchende Sting
' SuchText: gesuchtes Wort, Zeichen
' Vergleichsart: Mittels konst. vbTextCompare: Kein unterschied in Groß/klein. vbBinaryCompare
' Wert = 0 Wort nicht vorhanden
Wochenplan_1 = InStr( 1,FileString,"<!-- <Ich bin ein Marker> -->",1)
If Wochenplan_1 > 0 Then
Wochenplan_2 = InStr( Wochenplan_1,FileString,"<!-- </Wochenplan> -->",1)
'In Array zwischenspeichern
FileZ = Split(FileString, ")
' ****Test****
WScript.Echo Wochenplan_1
WScript.Echo Wochenplan_2
WScript.Echo (FileZ(0))
WScript.Echo (FileZ(1))
WScript.Echo (FileZ(2))
Else
MsgBox "Nicht gefunden"
End If
'Erzeugen der Ausgabe Datei.
' true/false = erlaubt das überschreiben einer vorhandenen Datei
Set FileOut = objFSO.CreateTextFile("C:\Monitor\" + FileMonitor, true)
FileOut.WriteLine("Test")
FileOut.Close
WScript.Quit