[VisualBasic] Instr() erkennt wert nicht!

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von Knusperkeks, 16. September 2006 .

Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. 16. September 2006
    Instr() erkennt wert nicht!

    HTML:
    <A href="1.php?q=4828" target=_blank>Name</A> </TD>
    Code:
    With WebBrowser1.Document.documentElement
     Do
     sPos = InStr(sPos + 1, .outerHTML, " target=_blank>", vbTextCompare)
     If sPos > 0 Then
    
     ePos = InStr(sPos + 1, .outerHTML, "</A> </TD>", vbBinaryCompare)
     If ePos > 0 Then
    
     ReDim Preserve sNames(nCount)
     sNames(nCount) = Mid$(.outerHTML, sPos + 15, ePos)
     nCount = nCount + 1
     End If
     Else
     sPos = 0
     End If
     Loop Until sPos = 0
     End With

    Mit dem Vb Code will ich aus dem oben genanntn quelltext den namen rausfiltern!

    Ich schaffe es das er am anfang des namen anfäng zu starten, aber der erkennt das ende nicht?

    Kann mir einer sagen wie die abfrage für die endposition richtig lauten müsste?


    Knusperkeks
     
  2. 16. September 2006
    AW: Instr() erkennt wert nicht!

    Code:
    ePos = InStr(sPos + 1, .outerHTML, "</A> </TD>", vbBinaryCompare)
    Wieso machst du da auf einmal Binary Compare?
    Nimm doch TextCompare wie oben, oder lass es ganz weg.
     
  3. 16. September 2006
    AW: Instr() erkennt wert nicht!


    Ja das war nur so eben nen test, ich habs schon mit allen 3 probiert, und keins klappt, auch weglassen geht nicht -.-

    Ich verzweifel hier ....


    Knusperkeks
     
  4. 16. September 2006
    AW: Instr() erkennt wert nicht!

    vllt steht's auch garned so drinne im quelltext? lass ihn dir halt mal zum debuggen inne textbox ausgeben....
     
  5. 17. September 2006
    AW: Instr() erkennt wert nicht!

    Tja, du hast nur einen kleinen Fehler gemacht:
    Der Substring-Aufruf! Der 3. Parameter gibt nicht die Endposition an, sondern die Länge des auszuschneidenden Strings. Du hättest also schlicht und ergreifend anstelle von "ePos" "ePos - (sPos + 15)" schreiben müssen. Und hier die Variante die etwas flexibler ist:

    Code:
     Const StringStart As String = " target=_blank>"
     Const StringEnd As String = "</A> </TD>"
     
     With WebBrowser1.Document.documentElement
     Do
     sPos = InStr(sPos + 1, .outerHTML, StringStart, vbTextCompare)
     If sPos > 0 Then
     sPos = sPos + Len(StringStart)
    
     ePos = InStr(sPos, .outerHTML, StringEnd, vbTextCompare)
     If ePos > 0 Then
    
     ReDim Preserve sNames(nCount)
     sNames(nCount) = Mid$(.outerHTML, sPos, ePos - sPos)
     nCount = nCount + 1
     End If
     Else
     sPos = 0
     End If
     Loop Until sPos = 0
     End With
    Gruß Roog
     
  6. 17. September 2006
    AW: Instr() erkennt wert nicht!


    Das hatte ich ja gemacht, und mir das genau angeguckt, und ich hab auch echt alles probiert -.-!

    Aber mit dem quelltext von Roogley gehts *freu*

    Vielen dank

    Knusperkeks
     
  7. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.