Vielen Dank nochmal euch beiden. Ja, StringTrimRight war eine Notlösung. Da habt ihr mich erwischt und das werde ich noch nachbessern. Auch ist es sicher besser mit den eingebauten Funktionen zu arbeiten, die hatte ich mir natürlich auch angesehen. Der Grund wieso ich hier _IE verwendet habe (abgesehen davon, dass ich Autoit erst seit 2 Tagen überhaupt kenne) ist, dass ich bestimmte Teile von 9 Webseiten ausschneide, und diese dann direkt mit _IEBodyWriteHTML in eine neue Webseite zurückschreibe. Dies allerdings auch nur aus Faulheit, weil ich so sehr schnell und einfach sämtliche Links mit _IELinkGetCollection in ein Array abgreifen kann. Ganz sauber kommt mir das selbst nicht vor, aber es funktioniert. Ich hatte vorher auch probiert alles in eine temporäre Datei zu schreiben und diese dann zu parsen. Auch das hat geklappt aber mit dem einlesen und parsen wurde es mir dann schnell zu kompliziert. Mit _IELinkGetCollection habe ich die Links in nur 3 Zeilen
Beiträge von Turin
-
-
Vielen Dank Leute. Ich hatte es ja schon dadurch gelöst, dass ich die gleiche Variable immer wieder überschrieben habe, was zwar ging, aber etwas ungeschickt ist, weil man dann vorherige Inhalte nicht mehr überprüfen kann. Ein Array wollte ich hier vermeiden, weil es schon zwei andere gab. Eigentlich wollte ich keine 9 Variablen deklarieren, sondern in einer Schleife 9 verschiedene, fortlaufende Variablen benutzen, was ich nicht hinbekommen habe.
Wenn ihr es genau wissen wollt:
[autoit];Read PLZ into ArrayFor $i = 0 To 9 _IENavigate($oIE, "http://www.beispiel-webseite.de/thumbs.php?postleitzahl="&$i) $oBody = _IEBodyReadHTML($oIE) $obody = StringTrimLeft($obody, StringInStr($obody, "Benutzer") ) $obody = StringTrimRight($obody, 851) Sleep(500) ;Zusammenfügen $Body &= $oBody Next
[/autoit]
Anstelle von $oBody hätte ich gerne $oBody & $i, je nach Postleitzahl gehabt. -
Hi Leute,
sorry für den blöden Titel, mir ist wirklich keine bessere Beschreibung eingefallen. Auch ist mir die Frage mega-peinlich, aber ich beschäftige mich erst seit Kurzem mit Autoit (eigentlich um Zeit zu sparen), aber ich komme an gewissen Stellen einfach nicht weiter:
a.)
Ich habe versucht, mit Hilfe des Concatenate Operators, mehrere Variablen auf die Schnelle zu erstellen, wie in den meisten anderen Sprachen durchaus üblich. Aber es ist mir einfach nicht gelungen, so dass ich gezwungen war, mit einem Array zu arbeiten, was ich eigentlich vermeiden wollte. Trotzdem möchte ich gerne wissen, was ich falsch gemacht habe.Wieso klappt zum Beispiel folgendes nicht:
Code;fail 1For $i = 0 To 9 Local $oBody & $i Next ;fail 2For $i = 0 To 9 Local $oBody$i Next ;fail 3For $i = 0 To 9 Local $oBody & Number($i) Next
Das ist jetzt nur ein Beispiel, aber wie kann ich eine Variable in einer Schleife durch zwei Variablen erstellen?
b.)
Collections und der "." Operator. In der Hilfe Finde ich einfach nichts dazu. Beispiel:CodeLocal $oInputs = _IETagNameGetCollection($oIE, "input") Local $sTxt = "" For $oInput In $oInputs $sTxt &= $oInput.type & @CRLF Next MsgBox($MB_SYSTEMMODAL, "Form Input Type", "Form: " & $oInput.form.name & @CRLF & @CRLF & " Types :" & @CRLF & $sTxt)
Wer ein bisschen HTML kann, versteht schon den Sinn von type, form und name. Aber ich möchte es gerne richtig verstehen. So gibt es zum Beispiel bei _IELinkGetCollection logischer Weise $variable.href, aber wie muss ich mir das vorstellen und wo stehen alle Werte. Muss ich mir das so vorstellen, dass die Werte der unterschiedlichen "Tags" in ein Array gelesen werden und dass man dann mit $Variable.TAG die entsprechenden Tags auslesen kann?