Hallo Rainer,
In Vb hat man doch nur begrenzte Möglichkeiten einen Text,
Inhalt einer Webseite zu filtern.
Man kann *, ?, Like usw. mischen.
Und man braucht Schleifen usw.
hmmm, den Inhalt von Webseiten in eine VB-Variable zu laden
schaffe ich schon nicht.
schau dir mal den nachstehenden Code an. Anstatt innerHTMl, innerText gibts wohl auch outerText bzw. outerHtml, weiß grad nicht auswendig wo da der genaue Unterschied ist, muß man halt austesten.
Vor Jahren hatte ich mir mal Code gebastelt, der hier in w-w-w ein komplettes Brett ausliest. Inklusive Emailadressen usw.
Ob das nach der Unsichtbarkeitsumstellung der Emailadressen noch ginge weiß ich nicht.
Da man natürlich über eine Schleife alle Bretter auslesen könnte, kann man damit natürlich viel machen.
In einem eigenen Browserfenster nur die Beiträge anzeigen lassen die man will, natürlich keine Sternchen anzeigen, unliebsame User rausfiltern, Bewegungsprofile aufgrund der Beiträge eines Users erstellen, sofortige Benachrichtigung bei eingegangenen Antworten u.v.m.
Vielleicht wäre das dann eine klassische Anwendungssache für RegExp!?
Und regexp (früher gabs mal grep was wohl der Vorläufer war)
Kenn mich da nicht aus.
‚ps -efa |grep rainer‘
zeigt mir alle meine Prozesse…
Das lese ich wie regexp, mit viel Zeit und Dauerrecherche im Internet. obwohl, für regexp gibts glaub eine chm oder hlp bei winXP.
Ich weiß den Namen aber nicht.
Wenn das bei langen Schleifen einen Geschwindigkeitsvorteil
von 60% bringt, reicht mir das als Grund, da mal ein
Wochenende lang zu lesen.
Du kannst das ja scheinbar lesen,
Nene, da täuschst du dich gewaltig, ich bräuchte da mindestens auch ein WE dafür
Den Code schnipsel den ich im anderen Brett zeigte, stammt aus den beiden Prozeduren die ich hier unten drangehängt habe.
Unabhängig von regexp verstehe ich sowieso nicht was der Code machen soll. Mir listet er nur den Emailadresse die im Code steht, sonst nix.
Vielleicht ist er gedacht für zweitemailadressen oder so.
Aber dieses Rätsel hab ich keine Lust zu lösen.
Da teste ich doch viel lieber regexp beim Auslesen von w-w-w-Seiten, macht mehr Spass *gg*
Gruß
Reinhard
Sub Test()
Dim Z
Close
Open "C:\test\htmltext.txt" For Output As #1
Print #1, GetInnerX("http://www.wer-weiss-was.de", "HTML")
Close 1
Z = Shell("notepad.exe C:\test\htmltext.txt", vbMaximizedFocus)
End Sub
'
Function GetInnerX(strURL As String, Optional strWhat As String = "HTML") As String
Dim objIE As Object, objDoc As Object
Dim strMldg As String
GetInnerX = ""
On Error GoTo ErrorHandler 'evtl. Fehler (auch serverseitig) abfangen
Set objIE = CreateObject("InternetExplorer.Application")
objIE.Visible = False
objIE.Navigate strURL
Do While objIE.Busy
Loop
Set objDoc = objIE.Document
Do While objDoc.readyState "complete"
Loop
Select Case UCase(strWhat)
Case "HTML"
GetInnerX = objDoc.Body.InnerHTML
Case Else
GetInnerX = objDoc.Body.InnerText
End Select
objIE.Quit
Exit Function
ErrorHandler:
If Err.Number 0 Then
strMldg = "Fehler 0x" & Hex(Str(Err.Number)) & " wurde ausgelöst von " \_
& Err.Source & Chr(10) & Err.Description
MsgBox strMldg, vbCritical, "Fehler beim Zugriff auf WWW via InternetExplorer", Err.HelpFile, Err.HelpContext
Err.Clear
End If
End Function
die Codes für regexp-test:
Sub Beispiel()
Dim strMailFilter() As String
Dim A As Long
Email\_Filter strMailFilter(), "[email protected]"
If IsArray(strMailFilter) Then
For A = LBound(strMailFilter) To UBound(strMailFilter)
Debug.Print strMailFilter(A)
Next A
Else
MsgBox "nix gefunden!"
End If
End Sub
'
Public Sub Email\_Filter(ByRef sMailFilter() As String, strB As String)
Dim varTmp() As Variant
Dim Regex As Object
Dim m As Object, Treffer As Object
Dim lngIndex As Long
Set Regex = CreateObject("Vbscript.regexp")
With Regex
.Pattern = "\b(\w[-.\w]\*@\w[-.\w]\*\.[a-zA-Z]{2,6})\b"
.IgnoreCase = False
.Global = True
Set Treffer = .Execute(strB)
For Each m In Treffer
ReDim Preserve sMailFilter(lngIndex)
sMailFilter(lngIndex) = m.Value
lngIndex = lngIndex + 1
Next
End With
Set Regex = Nothing
End Sub