ERLEDIGT
NEIN
NEIN
ANTWORTEN
4
4
ZUGRIFFE
479
479
EMPFEHLEN
-
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?
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94
'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 [COLOR="Red"]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, [B][/B]")[/COLOR] ' ****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
-
16.05.07 16:44 #2
Ich hab jetzt nicht so die VBS-Erfahrung, aber geht dort nicht auch der Befehl Split()?
Du kriegst dann ein Array zurückgeliefert (ohne den Trennstring) in dem die einzelnen Teile stehen. Ist VB6-Code, sollte aber in VBS auch funktionieren.Code vb:1
Texte = Split(FileString, "<!-- <Ich bin ein Marker> -->")
Der Doc!A: Hilfe, ich hab zwei Dateien hinzugefügt und nun sind die anderen weg
B: Die Scrollbar da rechts ist dir schon mal aufgefallen?
-
Danke für die AAntwort.
Das ist mir schon klar. Mein Problem ist viel mehr, dass ich ein HTML Dokument habe, in dem x-mal der Tag "<!-- <Ich bin ein Marker> -->" vorkommen kann, gefolgt von dem Code den ich "heraustrennen" möchte und dem schließenden Tag "<!-- </Ich bin ein Marker> -->"
Wie stelle ich es am, den HTML Code so zu Spliten, dass ich diesen in einem Array stehen habe, so dass ich dann mit Join() in die gewünschte Form bringen kann?
Die HTML sieht in etwa so aus:
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
</style></head><body> <!-- <Ich bin ein Marker> --> <div class= .......... ...... </div>> <!-- </Ich bin ein Marker> --> </td></tr> </tbody></table> <!-- <Ich bin ein Marker> --> <div> ..........</div> <!-- </Ich bin ein Marker> --> <div> ...... ..... </div> </tbody></table> ...... ......
Geändert von ThLey (16.05.07 um 18:16 Uhr)
-
17.05.07 13:49 #4
Ich steh momentan ein bisschen auf der Leitung, poste doch mal eine HTML-Datei so wie sie einzulesen ist und eine Textdatei, so wie sie am Schluss aussehen soll (am besten beide in einem Zip-File).
Der Doc!A: Hilfe, ich hab zwei Dateien hinzugefügt und nun sind die anderen weg
B: Die Scrollbar da rechts ist dir schon mal aufgefallen?
-
Siehe unter neuem Thema:
"Problem mit Text Datei"
dort werde ich auch die Datei posten.
Ähnliche Themen
-
String zusammenstellen anhand von mehreren Strings mit Positionslängen
Von Aleyna23 im Forum Java GrundlagenAntworten: 2Letzter Beitrag: 20.07.10, 13:36 -
Keying anhand eines Fotos
Von HoPi im Forum Videoschnitt, Videotechnik & -produktionAntworten: 2Letzter Beitrag: 09.11.08, 07:57 -
Speichern eines Strings in einer bestimmten Zeile in einem Text Dokument
Von finnex im Forum PHPAntworten: 4Letzter Beitrag: 21.08.08, 16:10 -
Shell script - Zerteilen eines Textstrings
Von treki im Forum Linux & UnixAntworten: 2Letzter Beitrag: 30.05.07, 22:52 -
IK anhand eines Strichmännchens
Von Atomic Bolt im Forum Cinema 4DAntworten: 14Letzter Beitrag: 15.10.05, 18:41





Zitieren

Login





