Text zwischen zwei Zeichenketten ausgeben
Hallo liebe Leute,
ich habe derzeitig mir zur Aufgabe gemacht aus einer HTML Seite, die ich per wget runterlade, einen bestimmten Bereich auszulesen.
Dieser Bereich wird durch zwei Wörter Abgegrenzt die sich nicht verändern, der Bereich dazwischen jedoch schon.
Beispiel:
<p><strong>Obst</strong></p>Apfel,Birne,Erdbeere<p><strong>Gemüse</strong></p>Apfel, Melone, Gurke, Salat
Ich möchte nun alles in eine neue txt Datei bekommen, was zwischen Obst und Gemüse liegt, wenn es ein paar Zeichen mehr oder weniger sind ist das nicht so schlimm, hauptsache "Apfel,Birne,Erdbeere" sind vollkommen erhalten.
Das ganze würde ich gerne mit einer Batch Datei verwirklichen. Natürlich habe ich schon vorher gesucht und geschaut ob ich es selber hinkriege und bin auf Teile wie "for /F" gekommen, habe aber nicht so wirklich begriffen, wie das verwendet wird.
Ich hoffe ihr könnt mir helfen
Mit freundlichen Grüßen
Zappdidappdi
ich habe derzeitig mir zur Aufgabe gemacht aus einer HTML Seite, die ich per wget runterlade, einen bestimmten Bereich auszulesen.
Dieser Bereich wird durch zwei Wörter Abgegrenzt die sich nicht verändern, der Bereich dazwischen jedoch schon.
Beispiel:
<p><strong>Obst</strong></p>Apfel,Birne,Erdbeere<p><strong>Gemüse</strong></p>Apfel, Melone, Gurke, Salat
Ich möchte nun alles in eine neue txt Datei bekommen, was zwischen Obst und Gemüse liegt, wenn es ein paar Zeichen mehr oder weniger sind ist das nicht so schlimm, hauptsache "Apfel,Birne,Erdbeere" sind vollkommen erhalten.
Das ganze würde ich gerne mit einer Batch Datei verwirklichen. Natürlich habe ich schon vorher gesucht und geschaut ob ich es selber hinkriege und bin auf Teile wie "for /F" gekommen, habe aber nicht so wirklich begriffen, wie das verwendet wird.
Ich hoffe ihr könnt mir helfen
Mit freundlichen Grüßen
Zappdidappdi
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 188242
Url: https://administrator.de/forum/text-zwischen-zwei-zeichenketten-ausgeben-188242.html
Ausgedruckt am: 17.05.2025 um 23:05 Uhr
10 Kommentare
Neuester Kommentar
Hallo Zappdidappdi,
also in Batch kann ich dir keine Lösung bieten, aber in VBS mal was zum Ausprobieren.
Gruss
Tsuki
also in Batch kann ich dir keine Lösung bieten, aber in VBS mal was zum Ausprobieren.
Dim SuchAnfang, SuchEnde
URLPfad = "http://de.wetter.yahoo.com/"
SuchAnfang = Chr(34) & "day-temp-current temp-c " & Chr(34) & ">"
SuchEnde = "&"
Set Http=CreateObject("WinHttp.WinHttpRequest.5.1")
Http.Open "GET",URLPfad,False
Http.Send
temp = split(Http.ResponseText,SuchAnfang)
temp1 = split(temp(1),SuchEnde)
temp2 = temp1(0) & "°C"
Wscript.Echo temp2
Gruss
Tsuki

Hallo Tsuki!
Bei Html-Text empfehle ich der Einfachheit halber RegExp zu verwenden.
Mit dem Obst/Gemüsebeispiel das Ganze dann in etwa so:
Gruß Dieter
Bei Html-Text empfehle ich der Einfachheit halber RegExp zu verwenden.
Mit dem Obst/Gemüsebeispiel das Ganze dann in etwa so:
Option Explicit
Const sURL = "http://www.ObstUndGemuese.de"
Const sTxtFile = "C:\Test.txt"
Dim oFso, oFile, oRE, oMatch, oSubMatch, sText
On Error Resume Next
With CreateObject("WinHttp.WinHttpRequest.5.1")
.Open "get", sURL, False
.send
sText = .responseText
End With
If Err Then
WScript.Echo "Webseite nicht verfügbar!": WScript.Quit 1
End If
On Error GoTo 0
Set oRE = New RegExp
Set oFso = CreateObject("Scripting.FileSystemObject")
Set oFile = oFso.CreateTextFile(sTxtFile)
With oRE
.Global = True
.IgnoreCase = True
.Pattern = "obst.*p>(.*)<p"
End With
For Each oMatch In oRE.Execute(sText)
For Each oSubMatch In oMatch.SubMatches
oFile.WriteLine oSubMatch
Next
Next
oFile.Close
Gruß Dieter

Hallo Tsuki!
Naja, um's verschönern gings mir eigentlich weniger, aber wenn Du es sagst
Gruß Dieter
Naja, um's verschönern gings mir eigentlich weniger, aber wenn Du es sagst
Aber wir wissen ja noch nicht, ob der TO es mit VBS machen möchte.
Vielleicht liefert bastla auch noch eine Batchlösung, wobei ich denke, dass auch er bei Html-Text eine RegExp-Variante einer Batch-Variante vorziehen würde?Gruß Dieter
[OT]
@Dieter

Grüße
bastla
[/OT]
@Dieter
dass auch er bei Html-Text eine RegExp-Variante einer Batch-Variante vorziehen würde
So isses ... Grüße
bastla
[/OT]

[OT]
Hallo bastla!

Gruß Dieter
[/OT]
Hallo bastla!
So isses ...
War mir nur zu 99,9% sicherGruß Dieter
[/OT]

Hallo Zappdidappdi!
Könnte so gehen:
Gruß Dieter
Könnte so gehen:
.Pattern = "\n.*obst.*gemüse.*p>(.*)<.*\r" |
Gruß Dieter