String Problem

  • Hi ,

    Ich möchte etwas aus dem Internet auslesen um genauer zu sein
    Wetter daten für meine Stadt. Das Problem ist nur das ich anstatt
    nur die Temperatur wiederbekomme danach noch ein paar zeichen
    sind die ich aber versucht habe mit StingTrimLeft zu beseitigen doch wen
    ich nun meinen Script starte passiert nix .

    Ich würde mich auf Hilfe freuen :)

    [autoit]

    #include <String.au3>
    #include <Inet.au3>
    #include <Array.au3>
    $sInet = _INetGetSource("http://www.wetter.com/deutschland/hagen/DE0004054.html")
    $aBetween = _StringBetween($sInet, '<div class="deg text_l temp_w" style="margin-bottom:4px">', "</div>")
    $aform = StringTrimRight($aBetween, 6) ;Es wer besser wenn ich die sonderzeichen von rechts wegennehme oder ?
    _ArrayDisplay($aBetween)

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

    Einmal editiert, zuletzt von Nono (3. März 2011 um 18:52)

  • [autoit]

    #include <String.au3>
    #include <Inet.au3>
    #include <Array.au3>
    $Input = InputBox("Stadt", "Bitte Stadt(weltweit) oder Plz(DE) eingeben!")
    $sInet = _INetGetSource("http://www.wetter.com/suchen/wetter/" & $Input & "/")
    If StringInStr($sInet, 'style="margin-bottom:4px">') Then
    $aBetween = _StringBetween($sInet, 'style="margin-bottom:4px">', "&deg;C</div>")
    $aBetween[0] &= "°C"
    _ArrayDisplay($aBetween)
    Exit
    EndIf
    If Not StringInStr($sInet, "</span> ergab folgende Treffer.</p>") Then
    MsgBox(0, "Fehler", "Es ist ein Fehler aufgetreten!")
    Exit
    EndIf
    $Town = _StringBetween($sInet, 'target="_top">', "</a>")
    $URL = _StringBetween($sInet, 'href="http://www.wetter.com/deutschland/', '.html"')
    $Grad = _INetGetSource('http://www.wetter.com/deutschland/' & $URL[0] & '.html')
    $aBetween = _StringBetween($Grad, 'style="margin-bottom:4px">', "&deg;C</div>")
    $aBetween[0] &= "°C"
    _ArrayDisplay($aBetween)

    [/autoit]

    Das mit dem Sonnig hab ich auch schon bemerkt gehabt :D ist jetzt anders.
    Das 2te geht jetzt auch, wenn direkt die Seite mit der Temperatur kommt.

    mfg BB

    "IF YOU'RE GOING TO KILL IT
    OPEN SOURCE IT!"

    by Phillip Torrone

    Zitat von Shoutbox

    [Heute, 11:16] Andy: ....böseböseböseböse....da erinnere ich mich daran, dass man den Puschelschwanz eines KaRnickels auch "Blume" nennt....ob da eins zum anderen passt? :rofl: :rofl: :rofl: :rofl:

    https://autoit.de/index.php?page…leIt#post251138

    Neon Snake

    2 Mal editiert, zuletzt von BadBunny (3. März 2011 um 18:46)

  • BadBunny Deins funktioniert nur an sonnigen Tagen :rofl:, weil im StringBetween der 3te Parameter schon die Anzeige enthält die z.B. anzeigt ob es sonnig ist.
    So geht es bei mir:

    Spoiler anzeigen
    [autoit]

    #include <String.au3>
    #include <Inet.au3>
    #include <Array.au3>
    $sInet = _INetGetSource("http://www.wetter.com/deutschland/hagen/DE0004054.html")
    $aBetween = _StringBetween($sInet, 'style="margin-bottom:4px">', "&deg;C</div>")
    $aBetween[0] &= "°C"
    _ArrayDisplay($aBetween)

    [/autoit]
  • Mit StringRegExp müsste es in diesem Fall schneller sein...

    Spoiler anzeigen
    [autoit]

    $sHTML = BinaryToString(InetRead("http://www.wetter.com/deutschland/hagen/DE0004054.html"), 4)
    $sPattern = '<div class="deg text_l temp_w" style="margin-bottom:4px">([0-9.]+?)&deg;C</div>'

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

    $aResult = StringRegExp($sHTML, $sPattern, 3)
    MsgBox(64, "Wetter", "Temperatur: " & $aResult[0] & "°C")

    [/autoit]