Sie sind nicht angemeldet.

1

Dienstag, 14. April 2009, 17:11

Wert aus Seitenquelltext

Hi ho :thumbsup:

Stehe gerade vor dem Problem das ich bei einem Programm einen gewissen Wert aus dem Seitenquelltext, der nicht in einem Form ist oder zumindest habe ich keines gefunden, ich mache das noch nicht so lange :wacko: .
Und dieser Wert sollte denn gespeichert werden in nem string um den dann wieder in einem forum oder txt auszugeben, der letzte teil ist kein Problem nur das "markieren/finden/angeben" des wertes am besten per spalte/zeile.
Darum handelt es sich :

<tr class="BGdark c xs">
<td style="">
0 -> Dieser WERT
</td>
<td>
<img src=v3s_gui/img/hw/hw_cpu_00.jpg style="border:5px solid #FFFFFF;">
</td>

<td class=l style="padding-left:10px; ">
Noname Prozessor
</td>
<td class=xxs style="">
-
</td>
<td class=xxs style="">
-
</td>
<td class="b" style="font-size:10pt; ">

0
</td>

<td>66%</td>

</tr>

Wäre nett wenn ihr helft ;)

Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von »smaXer« (14. April 2009, 17:13)


Hilfe für Kinder in Uganda

2

Dienstag, 14. April 2009, 18:11

Benutzt für solche sachen am besten _stringbetween
also zuerst halt mit _iebodyreadhtml und dannach mit stringbetween den wert auslesen :)
Signatur
Ich bin vom 6.9. an eine Woche wech :)
Ich kann mir richtige Ladebalken leisten und muss zwischen den GuiCtrlSetData's keine Sleeps einbaun 8|

3

Donnerstag, 16. April 2009, 15:03

kannst du es ein bisschen genauer machen... ich weis nicht so recht wie ich _stringbetween in meinem Fall anwenden kann , weil die 0 die ich will nicht immer eine 0 ist sondern auch 1 2 oder 14 sein kann :(

4

Donnerstag, 16. April 2009, 15:37

wenn der code so aus sieht:

Quellcode

1
2
3
<td style="">
0 -> Dieser WERT
</td>


dann benutzt doch einfach:

AutoIt-QuellCode

1
_stringbetween($body,'<td style="">','</td>')

$body musst du natürlich vorher auslesen lassen :)
Signatur
Ich bin vom 6.9. an eine Woche wech :)
Ich kann mir richtige Ladebalken leisten und muss zwischen den GuiCtrlSetData's keine Sleeps einbaun 8|

5

Donnerstag, 16. April 2009, 15:41

nehmen wir an du hast diesen quelltext als "myfile.html" abgespeichert:

AutoIt-QuellCode

1
2
3
4
5
6
#include<String.au3>

$Text = FileRead("myfile.html")
$Array = _StringBetween($Text,'<td style="">','</td>')

MsgBox(64,"danke I3iLLiG!!!", $Array[0])
Signatur

6

Freitag, 17. April 2009, 00:53

und wie mach ich das wenn der wert mermals vorkommt also bei meinem quelltext gibt es nach dem schema 10 werte und die müsste ich alle auslesen , so lese ich ja immer nur den ersten wert aus oder ?

7

Freitag, 17. April 2009, 12:43

Probiers halt aus ^^.
Signatur
Wenn freundlich sein Lügen bedeutet, bin ich gerne ein Arschloch.

8

Freitag, 17. April 2009, 13:14

MsgBox(64,"danke I3iLLiG!!!", $Array[0])
MsgBox(64,"danke I3iLLiG!!!", $Array[1])
MsgBox(64,"danke I3iLLiG!!!", $Array[2])
MsgBox(64,"danke I3iLLiG!!!", $Array[3])

glaub ich mal^^
Signatur :wbb:

9

Freitag, 17. April 2009, 14:07

$aArray = stringbetween ($sHTML,'<td style="">','</td>')
$aArray = ^ERROR
Error: Unknown function name.

bin gerade überfordert :cursing:

ich poste mal was ich bis jetzt habe :

Func OnYes()
local $email, $pw, $oIE, $oUsername, $oPasswd, $oForm, $sHTML


$email = InputBox("VEsports Bot 0.1b","E-mail:")
$pw = InputBox("VEsports Bot 0.1b","Password:")
$oIE = _IECreate ("http://vesports.4players.de/news.php")
_IELoadWait($oIE)
$oForm = _IEFormGetObjByName($oIE, 1)
$oUsername = _IEFormElementGetObjByName($oForm, 0)
_IEFormElementSetValue($oUsername, $email)
$oPasswd = _IEFormElementGetObjByName($oForm, 1)
_IEFormElementSetValue($oPasswd, $pw)
_IEFormSubmit($oForm)
_IELoadWait($oIE)


$sHTML = _IEBodyReadHTML ($oIE)
$sHTML = $sHTML & "<p><font color=red size=+5>Big RED text!</font>"
_IEBodyWriteHTML ($oIE, $sHTML)



$aArray =_stringbetween($sHTML,'<td style="">','</td>')
MsgBox(64,"danke I3iLLiG!!!", $Array[0])
MsgBox(64,"danke I3iLLiG!!!", $Array[1])
MsgBox(64,"danke I3iLLiG!!!", $Array[2])
MsgBox(64,"danke I3iLLiG!!!", $Array[3])

EndFunc

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »smaXer« (17. April 2009, 14:27)


10

Freitag, 17. April 2009, 14:51

s heißt, die funktion stringbetween existiert nicht.... die heißt eig nämlich _StringBetween und ist in der String.au3 also brauchst du ncoh ein:
#include <String.au3>
Signatur
Du möchtest Autoit lernen, aber weißt nicht wo du anfangen sollst? : [ANFÄNGER HIER REIN] Das Erlangen von Autolt Grundwissen

11

Freitag, 17. April 2009, 15:52

danke dir hab die veränderung jetzt vorgenommen , jetzt kommt ein neuer fehler :lol:

MsgBox(64,"danke I3iLLiG!!!"",$Array[0])
MsgBox(64,"danke I3iLLiG!!!"",$Array^Error
Error subscript uses with non-Arrey variable


AutoIt-QuellCode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <GUIConstantsEx.au3>
#include <ie.au3>
#include <array.au3> 
#include <String.au3> 

...

local $email, $pw, $oIE, $oUsername, $oPasswd, $oForm, $sHTML, $array

$sHTML = _IEBodyReadHTML ($oIE)
$sHTML = $sHTML & "<p><font color=red size=+5>Big RED text!</font>"
_IEBodyWriteHTML ($oIE, $sHTML)



$array =_StringBetween($sHTML,'<td style="">','</td>')
MsgBox(64,"danke I3iLLiG!!!", $array[0])
MsgBox(64,"danke I3iLLiG!!!", $array[1])
MsgBox(64,"danke I3iLLiG!!!", $array[2])
MsgBox(64,"danke I3iLLiG!!!", $array[3])

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »smaXer« (17. April 2009, 16:37)


12

Freitag, 17. April 2009, 16:31

benutzt bitte

Quellcode

1
[autoit][/autoit]
für deinen code^^
und vieleicht probier mal folgendes:

AutoIt-QuellCode

1
$sHTML = Stringlower(_IEBodyReadHTML ($oIE))
Signatur
Ich bin vom 6.9. an eine Woche wech :)
Ich kann mir richtige Ladebalken leisten und muss zwischen den GuiCtrlSetData's keine Sleeps einbaun 8|

13

Freitag, 17. April 2009, 16:40

danke für den tip ;)

hat aber leider nichts gebracht kommt immer noch der selbe Fehler :(

14

Freitag, 17. April 2009, 16:53

kann dir sagen das der fehler kommt weil er dein text net findet^^ aba ohne den original quellcode kann ich dir net helfen...
probier mal mit filewrite('quellcode.txt',$sHTML) zu überprüfen wo der fehler liegen könnte... wenn du ihn net findest lad die quellcode.txt datei mal hoch oder poste sie im spoiler^^
Signatur
Ich bin vom 6.9. an eine Woche wech :)
Ich kann mir richtige Ladebalken leisten und muss zwischen den GuiCtrlSetData's keine Sleeps einbaun 8|

15

Freitag, 17. April 2009, 17:14

so hab nochmal meinen Programmcode hingeschrieben, hatte da auch vergessen auf die neue seite zu verweisen , der login ist bei news und die infos bei hardware , hab ich geändert (: .
Der Original Quelltext hab ich hochgeladen , wie man den als spoiler einfügt weis ich(noch) nicht :doofy: .


AutoIt-QuellCode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#include <GUIConstantsEx.au3>
#include <ie.au3>
#include <array.au3> 
#include <String.au3> 

Func OnYes()
local $email, $pw, $oIE, $oUsername, $oPasswd, $oForm, $sHTML, $array


$email = InputBox("VEsports Bot 0.1b","E-mail:")
$pw = InputBox("VEsports Bot 0.1b","Password:")
$oIE = _IECreate ("http://vesports.4players.de/news.php")
_IELoadWait($oIE)
$oForm = _IEFormGetObjByName($oIE, 1)
$oUsername = _IEFormElementGetObjByName($oForm, 0)
_IEFormElementSetValue($oUsername, $email)
$oPasswd = _IEFormElementGetObjByName($oForm, 1)
_IEFormElementSetValue($oPasswd, $pw)
_IEFormSubmit($oForm)
_IELoadWait($oIE)

$oIE = _IECreate ("http://vesports.4players.de/hardware.php",1,1)
$sHTML = Stringlower(_IEBodyReadHTML ($oIE))
$sHTML = $sHTML & "<p><font color=red size=+5>Big RED text!</font>"
_IEBodyWriteHTML ($oIE, $sHTML)

      

$array =_StringBetween($sHTML,'<td style="">','</td>')
MsgBox(64,"danke I3iLLiG!!!", $array[0])
MsgBox(64,"danke I3iLLiG!!!", $array[1])
MsgBox(64,"danke I3iLLiG!!!", $array[2])
MsgBox(64,"danke I3iLLiG!!!", $array[3])



EndFunc   
»smaXer« hat folgende Datei angehängt:
  • Quellcode.txt (349,78 kB - 4 mal heruntergeladen - zuletzt: 11. Mai 2009, 18:35)

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »smaXer« (17. April 2009, 17:17)


16

Freitag, 17. April 2009, 17:58

Lass das Stringlower mal weg... das ist hier überflüssig..
Da im Prinzip alles richtig ist und es mit dem Quelltext klappt müsste, glaube ich, dass der Quelltext einer falschen seite ausgelesen wird....
Den Fehler könntest du so beheben:
in Zeile 22 statt:

AutoIt-QuellCode

1
$oIE = _IECreate ("http://vesports.4players.de/hardware.php",1,1)

lieber :

AutoIt-QuellCode

1
_IENavigate($oIE, "http://vesports.4players.de/hardware.php")

zu machen ;D

achja... und die MsgBox'en in "Danke Deathly!" umändern ;D
Signatur
Du möchtest Autoit lernen, aber weißt nicht wo du anfangen sollst? : [ANFÄNGER HIER REIN] Das Erlangen von Autolt Grundwissen

17

Freitag, 17. April 2009, 18:17

ok , danke für die Bemühung kommt aber immer noch der selbe Fehler :/ .
Am besten ich poste mal die Website und was ich genau haben möchte , vielleicht geht das auch anders ?
»smaXer« hat folgende Datei angehängt:
  • hardware.jpg (123,54 kB - 27 mal heruntergeladen - zuletzt: 27. Februar 2010, 11:38)

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »smaXer« (17. April 2009, 18:18)


18

Sonntag, 19. April 2009, 17:09

Also wenn Ihr ständig aneinander vorbeiredet will ich auch mal mein Glück versuchen. Das beispiel hier ist so einfach, das solltest Du schnell ausprobiert haben ^^

AutoIt-QuellCode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#include <string.au3>

$a = '<td style="">0</td>'
$b = '<td style="">'
$c = '</td>'

$array = _StringBetween($a,$b,$c)

If Not @error Then
    MsgBox(0,"",$array[0])
Else
    MsgBox(0,"","Zeichenkette nicht gefunden")
EndIf

$a = 'Leider nix zu finden da'
$b = '<td style="">'
$c = '</td>'

$array = _StringBetween($a,$b,$c)

If @error Then
    MsgBox(0,"","Zeichenkette nicht gefunden")
Else
    MsgBox(0,"",$array[0])
EndIf

$a = 'immer noch nix zu finden ^^'
$b = '<td style="">'
$c = '</td>'

$array = _StringBetween($a,$b,$c)

; Und hier mal mit dem provozierten Fehler
MsgBox(0,"",$array[0])


Ist das so ungefähr das, was bei Dir passiert? Vielleicht sicherst Du die Zeile mit $array[0] mal mit "if @error" wie hier in Zeile 21 ab und versuchst es dann noch einmal ?

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »Dschingis« (19. April 2009, 17:11)


19

Donnerstag, 23. April 2009, 17:06

so funktioniert es auch nicht :/

kann man das nicht über markieren und kopieren lösen ?

Ähnliche Themen