variable in GUI

  • Hi,

    Ich habe in meinem nesten script vor eine variable zeile aus dem quelltext einer seite zu übernehmen und in eine GUI einzusetzen (wie hier)
    hat jemand ein tut oder änliches, entweder bi ich zu dumm um die doku zu benutzen oder es gibt diese funktionserklärung woanders.
    kann mir jemand sagen wie es geht oder (noch besser) etwas wo es nochmal für den totalen vollnoob erklärt wird?

  • Was meinst du denn,
    StringBetween und InetGet hilft da immer :)

    Und dafür gibts die helpfile. deutsch und englisch :)

    • Offizieller Beitrag

    Das kann man schlecht verallgemeinern, kommt immer sehr auf den Einzelfall an, also vom Inhalt / Aufbau der Site, die du abfragen möchtest.

    Sind die gesuchten Daten tatsächlich direkt im Quellcode, holst du dir diesen einfach mit:

    [autoit]

    #include <INet.au3>
    $source = _INetGetSource ( $s_URL )

    [/autoit]

    Dann mußt du sehen, wie sich der gesuchte Text sicher herausfiltern läßt. ( _StringBetween() / StringRegExp() )

    Falls es so nicht machbar ist verwende die <IE.au3>. Hier kann man jetzt aber gar keine allgemeinen Tipps geben. Jetzt muß man genau schauen, wo der gesuchte Inhalt zu finden ist.

  • ich habe mir Zahl wird nicht neu geladen

    zur hilfe genommen aber ich hab keine ahnung was ich davon noch gebrauchen kann und was nicht das einzige was ich möchte ist, eine zahl die sich alle 8 sec aktualisiert in eine gui zu tun, das kann doch nicht so schwer sein?

    da ich aber kein plan habe weis ich auchnicht wirklich wieviel von dem quelltext ich da einfügen muss ich habe jetzt die zahl makiert und dafür den quelltext :

    <td align="center" bgcolor="#800000">3000</td>

    die 3000 ist die variable die ich in einer winzigen gui haben möchte

  • Spoiler anzeigen
    [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    #include <String.au3>

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

    #include <Array.au3>

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

    $zahl = _StringBetween('<td align="center" bgcolor="#800000">3000</td>', '<td align="center" bgcolor="#800000">', "</td>")
    $ergebniss = $zahl[0]

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

    MsgBox(0, "", $ergebniss)

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

    Denk von mir was du magst, aber ich finds lächerlich was du abziehst.
    Ne minute die Boardsuche zu verwenden is keine aufgabe. Gibt
    sogar einen thread der heißt _stringBetween, da wird alles erklärt...

    Erwarte von mir keine Hilfe mehr.

    Den Anfang string musst du einlesen durch Inetget, vll findet sich ja einer der dir das ganze script coded..

    Einmal editiert, zuletzt von huggy (17. Juni 2007 um 11:13)

  • So ersteinmal danke, dammit keine falschen beurteilungen aufkommen!

    Soso du findest es lächerlich was ich hier abziehe, ich bin keineswegs sojemand der nur nach hilfe schreit, ob du es glaubst oder nicht ich habe die sufu benutzt, ich habe die doku benutzt (die wie ich grade feststelle das gleiche ist wie das deutsche helpfile) und gleich zu anfang gesagt das ich mit der doku NICHT zurechtkomme aus diesem grund habe ich um hilfe gebeten, wenn ich dir zu dumm erscheine an deiner intelligenz (aufpassen ironie :rolleyes:) teilhaben zu lassen dann antworte mir einfach nicht!

    Genau deshalb habe ich am anfang um hilfe ODER einen link gebeten wo ich es selbst lernen kann, woraufhin man mir sagte das man das nicht verallgemeinern kann! also was soll ich tun deiner aussage nach kann also nur spezielle hilfe helfen, wenn du nicht bereit bist mir diese in einem vernüpftigen ton zu geben antworte mir nicht und lese einfach mit!

  • Meiner aussage nach kannst:

    nach der deutschen hilfe suchen
    nach threads suchen wos erklärt wird
    die bordsuche benutzen

  • Mit dem hinweis auf die suche bei dem deutschem helpfile hatte ich keine probleme, da hab ic sie auch gefunden, ich hab ein problem dammit das man mich auf die suche verweist aber dort kein passedes thema ist

  • wirst es kaum gauben aber( wie schon erwähnt) habe ich die sufu benutzt, sie hilft mir aber nicht weiter!

    egal es hat keinen sinn sich zu streitten, ich habe jetzt das was ich kann gemacht und es funktioniert nicht:

    [autoit]


    #include <String.au3>
    #include <INet.au3>
    #include <Array.au3>
    #include <GUIConstants.au3>

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

    $source = _INetGetSource ( "*URL*")
    $zahl = _StringBetween('<td align="center" bgcolor="#800000">3000</td>', '<td align="center" bgcolor="#800000">', "</td>")
    $ergebniss = $zahl[0]
    GUICreate ("test",107, 49, 42, 141,-1, Bitor ($WS_EX_TOPMOST,$WS_EX_TRANSPARENT))

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

    GUICtrlCreateLabel($zahl, 32, 12, 46, 17)
    GUISetState(@SW_SHOW)

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

    While 1
    $msg = GUIGetMsg($zahl)

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

    If $msg = $GUI_EVENT_CLOSE Then ExitLoop
    Wend

    [/autoit]

    jetz habe ich das fenster offen aber es kommt nix

    Einmal editiert, zuletzt von autoit-N00B (17. Juni 2007 um 12:05)

  • stimmt..

    kk..


    Also, Wieso nutzt du Inetgeturl nicht mit _Stringbetween?

    so gehts:

    Spoiler anzeigen
    [autoit]


    #include <String.au3>
    #include <INet.au3>
    #include <Array.au3>
    #include <GUIConstants.au3>



    $source = _INetGetSource ( "*URL*")
    ;$zahl = _StringBetween('<td align="center" bgcolor="#800000">3000</td>', '<td align="center" bgcolor="#800000">', "</td>")
    $zahl = _StringBetween($source, '<td align="center" bgcolor="#800000">', "</td>")
    $ergebnis = $zahl[0]

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

    GUICreate ("test",107, 49, 42, 141,-1, Bitor ($WS_EX_TOPMOST,$WS_EX_TRANSPARENT))

    GUICtrlCreateLabel($ergebnis, 32, 12, 46, 17)
    GUISetState(@SW_SHOW)

    While 1

    sleep(100)


    $msg = GUIGetMsg($zahl)

    If $msg = $GUI_EVENT_CLOSE Then
    ExitLoop

    EndIf

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

    Wend

    [/autoit]
  • Line 11

    $ergebnis=$zahl[0]
    $ergebnis=$zahl^ERROR

    Error: Subscript used with non-Array variable

    was hat das zu bedeuten?

  • dass Inetget nicht geklappt hat bzw du
    die source nicht eingelesen hast.


    _FileReadTo array.

    gib mal den link zur seite, dann schau ich später mal :D

  • habe ein weiteres problem vllt kann mir auch jemand anders helfen

    [autoit]


    While 1

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

    $source = _INetGetSource ("*URL*")

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

    $zahl = _StringBetween($source, '*****', "</td>")

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

    ;$zahl = _StringBetween($source, '<td align="center" bgcolor="#800000">', "</td>")
    $ergebnis = $zahl[0]

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

    if $source = "" Then
    GUIGetMsg (Connection Failed, please try again.)
    EndIf
    if $zahl = "" Then
    GUIGetMsg (Connection Failed, please try again.)
    EndIf
    if $ergebnis = "" Then
    GUIGetMsg (Connection Failed, please try again.)
    EndIf

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

    wend

    [/autoit]


    ich möchte das wenn das script keine verbindung bekommt ein fenster wie oben beschriben aufpoppt ich bekomme stattdessen aber

    $ergebnis = $zahl
    $ergebnis = $zahl^ERROR

    subscript used with non array variable

  • Rein in der theory versteh ich das sowieso nicht die seite ist immer online und der fehler kommt immer nach ca 15 min laufzeit.

    sry ich weis nicht was ich überprüfen soll ?(

  • ob dein Rückgabewert auch ein Array ist mit

    [autoit]


    If IsArray($zahl ) Then

    [/autoit]
    • Offizieller Beitrag

    Hi,

    [autoit]

    $source = _INetGetSource("*URL*")
    If @error Then
    MsgBox(16, 'Error', 'Fehler beim Zugriff auf URL')
    Exit (0)
    EndIf

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

    $zahl = _StringBetween($source, '*****', "</td>")
    If @error Then
    MsgBox(16, 'Error', '_StringBetween')
    Exit (0)
    Else
    _ArrayDisplay($zahl)
    Exit (0)
    EndIf

    [/autoit]

    So long,

    Mega