vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
vb@rchiv Offline-Reader - exklusiv auf der vb@rchiv CD Vol.4  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Visual-Basic Einsteiger
Text oder Leerzeichen im String (HTML) zwischen Tag finden 
Autor: woerny
Datum: 11.11.16 15:49

Hallo @ all,

ich lese eine HTML Seite (VB6) String ein und benötige **alle** Felder/Werte (auch leere), die immer zwischen einem Tag stehen. Der "Tag" endet definitiv immer mit </textarea> und beginnt mit ">
Die Zeichen vor dem "> sind i.d.R. unterschiedlich!.

?? Ist es überhaupt möglich von eiinem endenden Tag </textarea> zurück zugehen bis "> gefunden wird?

In der "MatchListe" können unterschiedliche Zeichen vorkommen (Zahlen und Buchstaben aber auch Sonderzeichen und Zeilenumbrüche vorhanden sein - aber nicht diese Kombiinataion ">
nur Beispielhafte Auflistung:
...maxlen="15">000010798861</textarea>
..armenu="">ABC001EFD</textarea>
...Status"></textarea>
...Kategorie_dynamisch">PC</textarea>
usw. usw...

Kann mir jemand weiterhelfen

Gruß
woerny



Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Text oder Leerzeichen im String (HTML) zwischen Tag finden 
Autor: ModeratorDieter (Moderator)
Datum: 11.11.16 17:40

Hier ein Beispiel:
Dim sBuffer As String
Dim nPos As Long
Dim sHTML As String
 
' Beispiel    
sHTML = "...maxlen="15">000010798861</textarea>"
 
' nach </textarea> suchen
nPos = InStr(1, sHTML, "</textarea>", vbTextCompare)
If nPos > 0 Then
  ' alles links davor in einen temporäre Zwischen-String lesen
  sBuffer = Left$(sHTML, nPos - 1)
 
  ' jetzt nach dem letzten > Zeichen suchen
  nPos = InStrRev(sBuffer, ">")
  If nPos > 0 Then
    ' Text extrahieren
    sBuffer = Mid$(sBuffer, nPos + 1)
 
    MsgBox sBuffer
  End If
End If

_________________________
Professionelle Entwicklerkomponenten
www.tools4vb.de

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Reguläre Ausdrücke?!! 
Autor: Blackbox
Datum: 13.11.16 18:07

notext
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Text oder Leerzeichen im String (HTML) zwischen Tag finden 
Autor: Franki
Datum: 14.11.16 03:43

Hallo,
zwei Tipps hast du ja schon bekommen, aber anders gefragt, wozu brauchst du diese Analyse? Normalerweise hat ein Tag ja einen Anfang und ein Ende, z.B.: <textarea>....</textarea>. Natürlich können Tags in HTML auch verschachtelt sein, das ist ja völlig normal. Aber warum brauchst du nur das jeweilige Ende?

Gruß
Frank
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Text oder Leerzeichen im String (HTML) zwischen Tag finden 
Autor: woerny
Datum: 14.11.16 13:16

Hallo Dieter,

für ein Treffer funktioniert dies *super*.
Ich benötige aber alle in einem String.

Wie kann nach jedem Treffer weiter gesucht werden?

Gruß
Werner



Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Text oder Leerzeichen im String (HTML) zwischen Tag finden 
Autor: woerny
Datum: 14.11.16 13:20

Hallo Frank,

weil der einleitende TAG (unterschiedliche immer anders ist

<textarea class="text f5 dat" id...
<textarea class="text f9 dat" id usw.

Gruß
Werner



Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Text oder Leerzeichen im String (HTML) zwischen Tag finden 
Autor: ModeratorDieter (Moderator)
Datum: 14.11.16 13:24

Erweiterung des Beispiels:
Do 
  ' nach </textarea> suchen
  nPos = InStr(1, sHTML, "</textarea>", vbTextCompare)
  If nPos > 0 Then
    ' alles links davor in einen temporäre Zwischen-String lesen
    sBuffer = Left$(sHTML, nPos - 1)
    sHTML = Mid$(sHTML, nPos + 11)
 
    ' jetzt nach dem letzten > Zeichen suchen
    nPos = InStrRev(sBuffer, ">")
    If nPos > 0 Then
      ' Text extrahieren
      sBuffer = Mid$(sBuffer, nPos + 1)
 
      MsgBox sBuffer
    End If
  Else
    Exit Do
  End If
Loop

_________________________
Professionelle Entwicklerkomponenten
www.tools4vb.de

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Text oder Leerzeichen im String (HTML) zwischen Tag finden 
Autor: Rippler
Datum: 14.11.16 15:03

verweis setzen auf Microsoft VBScript Regular Expressions 5.5

list1
command1

Private Sub Command1_Click()
Dim s As String
Dim p As String
s = "...maxlen=15>000010798861</textarea>...armenu=>ABC001EFD</textarea>" & _
"...Status></textarea>...Kategorie_dynamisch>PC</textarea>"
p = ">\w*?</textarea>"
findMe s, p, List1
End Sub

Private Function findMe(s As String, p As String, l As ListBox)
Dim myRegExp As RegExp
Dim myMatches As MatchCollection
Dim myMatch As Match
Set myRegExp = New RegExp
myRegExp.IgnoreCase = True
myRegExp.Global = True
myRegExp.Pattern = p
Set myMatches = myRegExp.Execute(s)
l.Clear
If myMatches.Count > 0 Then
For Each myMatch In myMatches
l.AddItem Mid(myMatch.Value, 2, Len(myMatch.Value) - 12)
Next
End If
End Function
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Text oder Leerzeichen im String (HTML) zwischen Tag finden 
Autor: Franki
Datum: 15.11.16 03:08

Hallo,

ok, dass da noch weitere Informationen stehen können ist ja klar, aber dennoch sollte der Tag immer mit dem schließenden </textarea> abgeschlossen sein.

Und wie gesagt, die Verschachtelung von Tags habe ich ja schon angeprochen. Da können auch <P irgendwas wie class, ID usw dazwischen stehen, aber bei wohlgeformtem HTML gibt es dann ein </P> oder je nachdem ob du XHTML verwendest auch nicht. Oder bei z.B. <hr> gibt es kein </hr>

Ich verstehe immer noch nicht wofür du das eigentlich brauchst. Der Hinweis auf RegEx ist ja schön und gut, aber ich bezweifle, dass dir das dauerhaft hilft. Grade bei Textaerea ist das ja ein Sonderfall, da da durchaus auch sonstiger formatierter Text drin stehen kann.

Gruß
Frank
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel