_Stringbetween funkt = 0

  • HI

    Ich würde euch mal bitten diesen teil selbst nachzuschauen im quelltext, warum er nicht funktioniert. ich weiss, das stringbetween wohl @error = 1 ausspuckt, nur für mich unerklärlich, da meiner meinung nach alles stimmt!

    [autoit]

    #include <Inet.au3>
    #include <String.au3>
    #include <GuiConstantsEx.au3>

    [/autoit][autoit][/autoit][autoit]

    GUICreate("test", 650, 500)

    [/autoit][autoit][/autoit][autoit]

    $sonline = _StringBetween(_INetGetSource("http://pennergame.de/login/"), '<td style="text-align:right;">', 'Spieler online</span>' & @LF)
    $online = StringTrimLeft($sonline[0], 10)
    GUICtrlCreateLabel("" & $online & " Spieler online", 540, 485);spieleronline
    GUISetState()

    [/autoit][autoit][/autoit][autoit]

    Do
    Until GUIGetMsg() = $GUI_EVENT_CLOSE

    [/autoit]

    Bis vor tagen ging es noch mit genau dem gleichen code, jedoch hat sich meiner meinung nach (hab es 1000x verglichen) der quelltext nicht geändert (zumindestens ned an den relevanten stellen)
    greetz max sony

    Einmal editiert, zuletzt von MaxSony (15. Februar 2009 um 20:31)

  • Mach den Strich davor weg, dann dürfte es funktionieren, also:

    [autoit]

    StringBeetween(...)

    [/autoit]
  • [autoit]

    #include <Inet.au3>
    #include <String.au3>
    #include <GuiConstantsEx.au3>

    [/autoit][autoit][/autoit][autoit]

    GUICreate("test", 650, 500)

    [/autoit][autoit][/autoit][autoit]

    $sonline = _StringBetween(_INetGetSource("http://pennergame.de/login/"), '<td style="text-align:right;">', 'Spieler online</span>')
    $online = StringTrimLeft($sonline[0], 11)
    GUICtrlCreateLabel("" & $online & " Spieler online", 540, 485);spieleronline
    GUISetState()

    [/autoit][autoit][/autoit][autoit]

    Do
    Until GUIGetMsg() = $GUI_EVENT_CLOSE

    [/autoit]
  • danke -

    das letztere hat funktioniert so wie es soll...

    jedoch kannst du mir bitte erklaeren wie du auf die zahl "11" bei stringtrimleft gekommen bist? - und warum muss man jetzt kein @LF mehr verwenden? - vorher war doch genauso wie jetzt ein zeilenumbruch dazwischen?!

    greetz Max Sony

    • Offizieller Beitrag

    Andere Variante, ganz Include-frei ;)

    [autoit]

    $oHTTP = ObjCreate("winhttp.winhttprequest.5.1")
    $oHTTP.Open("GET","http://pennergame.de/login/")
    $oHTTP.Send()
    $HTMLSource = $oHTTP.Responsetext
    $online = StringRegExp($HTMLSource, "(?:\t{3}<span>)(\d*)(?= Spieler online)", 1)
    MsgBox(0, 'online', $online[0] & ' Spieler')

    [/autoit]
  • Naja ein COM-Objekt lässt sich auch als include-ähnlich bezeichnen ;) und benötigt mindestens Windows XP oder Windows 2000 Professional mit SP3