_StringBetween gibt immer 0 zurück!

  • HI

    Also ich hab die suche benutzt und auch viele derartiger beiträge gefunden.

    jedoch verhalf leider nichts von den möglichen lösungen mir zum erfolg.

    [autoit]

    $sonline = _StringBetween(_INetGetSource("http://pennergame.de/"), _
    '<td style="text-align:right;"><span>', _
    "Spieler online</span>")
    GUICtrlCreateLabel ( ""&_ArrayDisplay ($sonline, "")&" Spieler online", 560, 485);spieleronline

    [/autoit]

    Was fehlt hier noch, oder was ist verkehrt? , oder funktioniert das generell nicht in einem "label" ?

    greetz Max Sony

    2 Mal editiert, zuletzt von MaxSony (8. Februar 2009 um 23:45)

  • StringBetween gibt im Erfolgsfall ein Array zurück ;) Der erste Treffer wäre $sonline[0]
    Und seit wann gibt es "Spieler online" auf autoit.de???

  • sicher funktioniert das
    aber was willst du mit nem _ArrayDisplay?
    das zeigt ja array in einem listview ?(
    und kann es sein dass du @CRLF nicht beachtet hast?
    und (noch eins^^) warum heißt es bei dir auf autoit.de "Spieler online" :D:D:D

    Padmak

  • Ok, das mit dem Array hab ich verstanden, nur was für ein befehl geht mir da jetzt ab mit dem ich aus dem quelltext die spieleranzahl zb: "40321" in einer GUI einblenden lasse.

    [autoit]


    #include <GUIConstantsEx.au3>
    #include <String.au3>
    GUICreate ("Pennergame", 650, 500)

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

    $sonline = _StringBetween(_INetGetSource("http://pennergame.de/"), _
    '<td style="text-align:right;"><span>', _
    "Spieler online</span>")
    GUICtrlCreateLabel ( ""&$sonline&" Spieler online", 560, 485);spieleronline

    [/autoit]

    greetz

    • Offizieller Beitrag

    Versuche es mal so:

    [autoit]

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

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

    GUICreate("Pennergame", 650, 500)

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

    $sonline = _StringBetween(_INetGetSource("http://pennergame.de/"), '<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]
  • HI

    Danke für eure bemühungen, jetzt klappts.

    Nur leider größtenteils nur mithilfe von C+P.

    Ich wollte jetzt noch die Serverzeit auslesen:

    Im Quelltext steht folgendes:

    Code
    var currenttime = 'February 08, 2009 22:28:56'
    var montharray=new Array("January","February","March","April","May","June","July","August","September","October","November","December")
    var serverdate=new Date(currenttime)

    Hier mal mein ansatz dazu:

    [autoit]

    $szeit = _StringBetween(_INetGetSource("http://pennergame.de/login/"), "var currenttime", "var montharray=new" & @LF)
    $zeit = StringTrimRight ($szeit[0], 22)
    $zeit = StringTrimLeft ($szeit[0], 1)
    GUICtrlCreateLabel("Serverzeit: " & $zeit, 5, 485)
    GUISetState()

    [/autoit]

    Nun bringt er mir aber immer Error in Line 62

    $zeit = StringTrimRight ($szeit[0], 22)
    $zeit = StringTrimRight ($szeit^ERROR

    Error: Subscript used with non-Array variable.

    Bedeutet die fehlermeldung das das StringBetween also quasi der quellcode falsch ist?

    Wäre dankbar wenn ihr mir genau sagen könntet wo der fehler liegt, dann weiss ichs beim nächsten mal bestimmt.

    Und ein anderes Problem ist, das sich je nach Monat ja die länge des StringTrimLeft ändert. da die monate verschieden lang sind. - oder gibts ne bessere lösung?

    greetz max sony

  • Ok, es lag am stringbetween

    Zur Aufklärung für andere, was ich rausgefunden hab, was StringTrimRight bzw StringTrimLeft angeht.(hoffe es stimmt): 1 Tabulatorsprung zählt als 1; 1. Zahl oder Buchstabe etc. zählt als 1; 1 Leerzeichen zählt als 1 (hatte selbst mit dem tabulatorsprung zu kämpfen, da ich nicht wusste als wieviel das nun zählt)

    Habs nun geschafft ^^ ;)

    Danke für deine Hilfe und danke auch an die anderen die geholfen haben, viele weitere fragen zu anderen themen werden sicher folgen *g*

    haut rein

    greetz Max Sony