2DArray auslesen

  • Also, ich will aus einer Tabelle einen bestimmen Wert in einer bestimmten Zeile und Spalte auslesen.
    Z.B.: in Zeile3/Spalte3 mit den Wert VK: 7.25 und ihn dann in If Then Abfrage auslesen lassen.

    Kann man den Wert als Zahl und nicht als String auslesen? Sodass ich den Wert 7.25 > / < bestimmen kann.

    Kann da jemand helfen ? ;)

    [autoit]

    #include <String.au3>
    #include <array.au3>
    #include <IE.au3>

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

    WinActivate ("???")
    $oIE = _IECreate ("http://???.de")
    $sHTML = _IEBodyReadHTML ($oIE)
    $sText = _IEBodyReadText ($oIE)

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

    $oTable = _IETableGetCollection ($oIE,0) ;Objekt für die Tabelle mit dem Index 0 erzeugen
    $aTableData = _IETableWriteToArray ($oTable) ;Inhalt der Tabelle in einen 2D-Array schreiben
    _ArrayDisplay($aTableData,"Meine Tabelle") ;Inhalte aus dem Array Anzeigen

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

    $oTable2 = _IETableGetCollection ($oIE,4) ;Objekt für die Tabelle mit dem Index 0 erzeugen
    $aTableData2 = _IETableWriteToArray ($oTable2) ;Inhalt der Tabelle in einen 2D-Array schreiben
    ;_ArrayDisplay($aTableData2,"Meine Tabelle") ;Inhalte aus dem Array Anzeigen

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

    Dim $oTable[7][4]

    ;~ Zeile 1
    $oTable[0][0] = 'Zeile1/Spalte1'
    $oTable[0][1] = 'Zeile1/Spalte2'
    $oTable[0][2] = 'Zeile1/Spalte3'
    $oTable[0][3] = 'Zeile1/Spalte4'

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

    ;~ Zeile 2
    $oTable[1][0] = 'Zeile2/Spalte1'
    $oTable[1][1] = 'Zeile2/Spalte2'
    $oTable[1][2] = 'Zeile2/Spalte3'
    $oTable[1][3] = 'Zeile2/Spalte4'

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

    ;~ Zeile 3
    $oTable[2][0] = 'Zeile3/Spalte1'
    $oTable[2][1] = 'Zeile3/Spalte2'
    $oTable[2][2] = 'Zeile3/Spalte3'
    $oTable[2][3] = 'Zeile3/Spalte4'

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

    ;~ Zeile 4
    $oTable[3][0] = 'Zeile4/Spalte1'
    $oTable[3][1] = 'Zeile4/Spalte2'
    $oTable[3][2] = 'Zeile4/Spalte3'
    $oTable[3][3] = 'Zeile4/Spalte4'

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

    ;~ Zeile 5
    $oTable[4][0] = 'Zeile5/Spalte1'
    $oTable[4][1] = 'Zeile5/Spalte2'
    $oTable[4][2] = 'Zeile5/Spalte3'
    $oTable[4][3] = 'Zeile5/Spalte4'

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

    ;~ Zeile 6
    $oTable[5][0] = 'Zeile6/Spalte1'
    $oTable[5][1] = 'Zeile6/Spalte2'
    $oTable[5][2] = 'Zeile6/Spalte3'
    $oTable[5][3] = 'Zeile6/Spalte4'


    ;~ Zeile 7
    $oTable[6][0] = 'Zeile7/Spalte1'
    $oTable[6][1] = 'Zeile7/Spalte2'
    $oTable[6][2] = 'Zeile7/Spalte3'
    $oTable[6][3] = 'Zeile7/Spalte4'

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


    For $i = 0 To UBound($oTable) -1 ; $i ist der Zähler für die Zeilen
    For $k = 0 To UBound($oTable, 2) -1 ; $k ist der Zähler für die Spalten
    $oTable[$i][$k] = 'Zeile' & $i & '/Spalte' & $k
    Next
    Next

    If _StringBetween ($oTable[2][2],'VK: ',' |--') = "7.25" Then
    MouseClick ("right", 173, 428, 1)
    EndIf

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


    _IEQuit ($oIE)

    [/autoit]
  • [autoit]

    $Zigaretten = Send ("{TAB 65}")

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

    If _IETableGetCollection ($oTable[2][1]) = "4,00" Then
    $Buy = Send ("5555, 1")
    EndIf

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

    $Benzylpiperazin = Send ("{TAB 4}")

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

    If _IETableGetCollection ($oTable2[3][3]) = "36,25" Then
    $Buy = Send ("5555, 1")
    EndIf

    [/autoit]

    Mit der obengenannten Zeile funktioniert es. Aber halt nur wenn dort ein bestimmter wert gesucht wird. Wie kann ich das mit größer oder kleiner abfragen?
    Und gerade hab ich bemerkt, dass er nicht nach den ganzen Wert sucht, sondern nur nach einer Zahl innerhalb des Wertes. Wie kann ich das änder ?

    Mit den Vorschlag von Mega hat es irgendwie nicht funtioniert.

    2 Mal editiert, zuletzt von Mr.Slave (6. Juni 2008 um 15:40)