Array Tabelle

09/14/2013 20:22 emil#1
Hiho, ich brauche Bitte wieder mal Hilfe bei ner Array Tabelle, ich komm net so richtig weiter. Er gibt mir immer nur 3 Zeilen aus. :-(

Und zwar möchte ich den Body aus einen JS Script in eine Tabelle einlesen.

Ich habe es so gemacht:

Code:
Local $oTable = _IETableGetCollection($oIE, 0)
$array = _IETableWriteToArray($oTable, True)
_ArrayDisplay($array)
er erstallt auch eine Tabelle aber nur mit 3 Zeilen dann ist schlus, vielleicht kann ja wer Helfen Danke schonmal.

So zeigt er mir die Seite komplett an:
Code:
$sHTML = _IEBodyReadText($oIE)
      If StringRegExp($sHTML, "<!DOCTYPE html>", 0) Then
      MsgBox (48, "Error", "There was an error loading interent explorer") EndIf
09/14/2013 20:25 alpines#2
Send doch bitte mal den Ausschnitt des Sources, dein Ergebnis und so wie es sein soll.
09/14/2013 21:12 emil#3
Bitte, er gibt nur 3 Zeilen in der Tabelle aus.


HTML Code:
Battle of Crowns (BETA)           <div style="width: 22em; position: absolute; left: 50%; margin-left: -11em; color: red; background-color: white; border: 1px solid red; padding: 4px; font-family: sans-serif"> Your web browser must have JavaScript enabled in order for this application to display correctly. </div>     
m
Im Auftrag des Königs
Nach dem Tutorial erhältst du:
  
-
Überspringen
OK
725
0
You have just received an avatar hint! and its loong, very very very long lon...
85.124
test1234_1
Dummy_#1
Dummy_#2
Dummy_#3
Dummy_#4
Handelscon...
0
36
250
0
0
0
0
0
0
0
250
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
  
Ausloggen
in der Liste wo jetzt noch 0 steht kömmen dann später andere Werte, es kann auch sein das die sich noch erweitert. Oben die 2 Werte habe ich schon einzeln ausgelesen (725 ; 0 )
Ich bräuchte also den Text ab der Position: (85.124) bis übers ausloggen.
09/14/2013 21:32 alpines#4
Es scheint als ob deine Funktion die Werte ab 0 ignoriert, hast du in der Hilfe nach dem korrekten Syntax, bzw. einem ähnelnden Befehl geschaut? Ansonsten schreib dir die Funktion selber, so schwer ist das nicht.
09/14/2013 21:39 emil#5
ja nach den Text : Nach dem Tutorial erhältst du:

kommt eine Leerzeile, ich denk mal es liegt daran das er aufhört, wie kann man das Ignorieren ?
09/14/2013 21:41 alpines#6
Code:
$sHTML = StringReplace($sHTML, "Nach dem Tutorial erhältst du:" & "  " & @CRLF & "-", "Nach dem Tutorial erhältst du:" & @CRLF)
Damit wäre die leere Zeile zumindest weg.
09/14/2013 21:43 emil#7
Thx werd ich gleich mal Testen.

Nein leider steht es immer noch danach drin hab egeb si getestet:

$sHTML = _IEDocReadHTML($oIE)
$aHTML = StringReplace($sHTML, "Nach dem Tutorial erhältst du:" & " " & @CRLF & "-", "Nach dem Tutorial erhältst du:" & @CRLF)
MsgBox(0,"Test",$aHTML)
FileWrite(@ScriptDir & '\Quelltext.html', $aHTML)

also immernoch:

Im Auftrag des Königs
Nach dem Tutorial erhältst du:

-
Überspringen
OK
725
09/14/2013 22:03 alpines#8
Du musst noch die _IETableWriteToArray unter dem StringReplace verwenden.
Btw, StringReplace returned keinen Array sondern einen String, also lass den Variablennamen auf $sHTML.

Aber der sollte doch die leere Zeile zumindest gelöscht haben oder nicht?
09/14/2013 22:17 emil#9
nein hatte ich auch getestet da bricht er ab und gibt :

--> IE.au3 V2.4-0 Error from function _IETableWriteToArray, $_IEStatus_InvalidDataType

aus.

Also ich habs auch so gemacht:

$sHTML = _IEDocReadHTML($oIE)
$sHTML = StringReplace($sHTML, "Nach dem Tutorial erhältst du:" & " " & @CRLF & "-", "Nach dem Tutorial erhältst du:" & @CRLF)
MsgBox(0,"Test",$sHTML)
$array = _IETableWriteToArray($sHTML, True)
09/14/2013 22:28 alpines#10
Wops, da fehlt ja auch noch eine Kleinigkeit, vielleicht gehts damit:
Code:
$sHTML = _IEDocReadHTML($oIE)
$sHTML = StringReplace($sHTML, "Nach dem Tutorial erhältst du:" & @CRLF & " " & @CRLF & "-", "Nach dem Tutorial erhältst du:" & @CRLF)
MsgBox(0,"Test",$sHTML)
$array = _IETableWriteToArray($sHTML, True)
Hab den Carriage Return Line Feed hinter dem Tutorial erhälts du: vergessen.
09/14/2013 22:36 emil#11
Nein hilft leider auch nichts:
--> IE.au3 V2.4-0 Error from function _IETableWriteToArray, $_IEStatus_InvalidDataType

und Quelltest gibt nur noch 0 aus :-(, ich bastel da schon seit gestern dran.
Puhh nur alle daten einzeln auslesen, das dauert ja Jahre
09/14/2013 23:17 alpines#12
Wenn die Funktion ein Error returned obwohl sie Error-Handling hat, dann würde ich dir raten sich von der zu entfernen, schreib die Funktion selber.
09/15/2013 01:24 emil#13
Also mit:
Code:
$sHTML = _IEBodyReadText($oIE)
Local $oTable = _IETableGetCollection($oIE, 0)
$array = _IETableWriteToArray($oTable, True)
_ArrayDisplay($array)
gibt er mir das aus:

ROW | Col 0
[0] | 0
[1] | 0
[2] | Nach dem Tutorial erhältst du:-ÜberspringenOK

mehr nicht ohne Fehler, hat noch wer nen Rat für mich '?
Achja mit:
Local $iNumTables = @extended
MsgBox(0, "Infos über die Tabellen", "Es gibt " & $iNumTables & " Tabellen auf dieser Seite")

meint er das es 10 Tabellen auf der Seite gibt.
09/15/2013 01:55 alpines#14
Die Funktion kann outdated sein, auch wenn sie es vermutlich nicht ist.
Schreib dir die Tabellenfunktion selber, das sollte nicht allzu schwer sein.