Beiträge von Norman Bates
-
-
Sorry wirklich...aber Blick es nicht.
Der Code sieht jetzt wie folgt aus:
[autoit]#include <array.au3>
[/autoit]
#include <string.au3>
Global $sText, $aResult, $file, $sString
$sText = FileReadLine("C:\Users\testuser\Documents\Folder\test.htm",82 & 83)
$file = FileOpen("C:\Users\testuser\Documents\Folder\test.txt", 1)
Sleep(3000)
$aResult = StringRegExp($sString, '(?s)"fname">(.*?)<.*?"spotft">(.*?)<br>.*?Tel:(.*?),<br>.*?mailto:(.*?)<br>', 1,1)
For $i = 0 To UBound($aResult) -1
ConsoleWrite($aResult[$i] & @CRLF)
NextWoher bekommt $sString seinen Wert?
-
Habe es sowohl mit
[autoit]$aResult = StringRegExp($sString, '"fname">(.*?)<.*?"spotft">(.*?)<br>.*?Tel:(.*?),<br>.*?mailto:(.*?)<br>', 1,1)
[/autoit]wie auch mit
[autoit]$aResult = StringRegExp($sText, '"fname">(.*?)<.*?"spotft">(.*?)<br>.*?Tel:(.*?),<br>.*?mailto:(.*?)<br>', 1,1)
[/autoit]probiert.
Nur worauf bezieht sich $sString?
-
Danke für deine Antwort
Habe das jetzt wie folgt abgeändert leider funktioniert es nicht.
Was habe ich falsch gemacht?
[autoit]Global $aResult, $file, $i, $sString, $sText, $sText2
[/autoit][autoit][/autoit][autoit]$sText = FileReadLine("C:\Users\testuser\Documents\Folder\test.htm",82)
[/autoit]
;~ $sText2 = FileReadLine("C:\Users\testuser\Documents\Folder\test.htm",83)
;~ $file = FileOpen("C:\Users\testuser\Documents\Folder\test.txt", 1)
$aResult = StringRegExp($sText, '"fname">(.*?)<.*?"spotft">(.*?)<br>.*?Tel:(.*?),<br>.*?mailto:(.*?)<br>', 1,1)
For $i = 0 To UBound($aResult) -1
ConsoleWrite($aResult[$i] & @CRLF)
Next -
-
Hallo zusammen,
ich stehe wieder vor einem Problem.
Ich habe hier eine *.htm Datei in der mich 3 Zeilen interessieren.
Diese lese ich mit FileReadLine ein und kann diese dann auch in eine txt schreiben.
Nur möchte ich ja nicht das Zeug drumherum haben sondern nur die Daten die ich wirklich brauche.
Kleines Beispiel:
Code<p class="fname">Name<p class="spotft">Strasse, wird nicht gebraucht, PLZ Ort<br> Tel: 0123456-789,<br></p> <p class="spotft"><a href="mailto:Email@Adresse<br>Der Code:
[autoit]#include <array.au3>
[/autoit]
#include <string.au3>
$sText = FileReadLine("C:\Users\testuser\Documents\Folder\test.htm",82)
$sText2 = FileReadLine("C:\Users\testuser\Documents\Folder\test.htm",83)
$file = FileOpen("C:\Users\testuser\Documents\Folder\test.txt", 1)
Sleep(3000)
FileWrite($file,@CR)
FileWrite($file, @CRLF & $sText)
FileWrite($file,@CR)
FileWrite($file, @CRLF & $sText2)Gruß Norman
-
Eine Frage habe ich noch.
Ich bin jetzt soweit das er das ausgelesene in eine txt schreibt und da steh ich wieder vor einem neuen Problem.Ich habe ca. 10 *.htm Dateien.
Jetzt möchte ich das er die alle einliesst und dann in die txt schreibt.
Hier der Code:
EDIT:
Habs selber hinbekommen.
Gruß
Norman -
Ok habe ich gemacht...funktioniert nicht mit der htm Datei.
Kopiere ich aber den Inhalt der htm in eine txt funktioniert es. -
Der Code wie Du ihn hier gepostet hat funktioniert.
Nur in meinem Fall habe ich die Datei schon runtergeladen und in dieser ist der Quelltext drin.Sprich Datei test.htm enthält folgendes:
Natürlich steht da noch mehr drin nur mir geht es ja nur um die zeilen mit " href"
Gruß
Norman -
Danke für deine Antwort.
Leider wird mir das Array nicht angezeigt.
-
Hallo zusammen,
eine frage an die Profis.
Ich habe hier eine Quelltext datei. (test.htm) Ich möchte aus dieser Datei etwas bestimmtes auslesen und eine neue txt datei speichern.
Ich möchte immer das aus lesen was zwischen "href=" diesen Text auslesen ".
Kann mir da einer bei helfen?
Danke und Gruß
Norman
-
-
Hallo zusammen,
ist es möglich mit Autoit von dieser Seite Name, Adresse, PLZ und Ort auszulesen?
Mit IEGetsource funktioniert es nicht da diese Daten nicht im Quelltext stehen.
Vllt kann mir da einer nen Tip geben.
Gruß Norman
-
Das war das tüpfelchen auf dem i.
Jetzt läuft mein Script 1a dank eurer Hilfe.Danke und Gruß
Norman -
Danke an alle...es funktioniert.
@ i2c
Könntest Du mir den Code für den Lerneffekt noch kommentieren?
Setz vor der For-Schleife eine Zählvariable auf 0 und prüfe nach jedem Schleifendurchlauf auf >=3 .... Exitloop
[autoit]Dim $a[5] = [1, 2, 3, 4, 5]
[/autoit] [autoit][/autoit] [autoit]$i = 0
[/autoit]
For $element In $a
ConsoleWrite($element & @LF)
$i += 1
If $i >= 3 Then ExitLoop
Next -
Danke für deine Antwort.
Soweit funktioniert es....nur wie kann ich Ihm sagen er soll nur die ersten 3 Links öffnen.
Wie gesagt es gibt Anbieten die haben 100 Auktionen drin und die soll er ja nicht alle durchgehen. Auktionen reichen.Danke und Gruß
Norman -
Hallo zusammen,
ich habe mal wieder ein Problem mit meinem Script.
In dem folgenden Auszug passiert folgendes....Es wird nach Links mit ein bestimmten Inhalt gesucht.
Wenn er diese gefunden hat öffnet er diesen.Mit der For schleife sage ich Ihm er soll 3 Auktionen öffnen nacheinander.
Das funktioniert auch soweit nur wenn es einen Anbieter gibt der nur eine Auktion drin hat läuft er zwar durch, bricht dann aber beim nächsten durchluf ab.Code==> Array variable has incorrect number of subscripts or subscript dimension range exceeded.: _IENavigate($inet,$alink[$search[$z]]) _IENavigate($inet,$alink[^ ERRORWie kann ich Ihm sagen das er, wenn nur ein Link vorhanden ist, auch nur diesen einen Link öffnet und nicht probiert 2 oder 3 zu öffnen wenn die nicht da sind?
Hat einer ne Idee?
Danke und Gruß
[autoit]
Norman$search = _ArrayFindAll($alink,"http://www.ebay.de/itm",0,0,0,1); findet alle links in denen das suchwort vorkommt
[/autoit][autoit][/autoit][autoit]If $search <> -1 Then ; wenn es links mit dem suchwort gibt...
[/autoit][autoit][/autoit][autoit]For $z = 0 to 2
[/autoit][autoit][/autoit][autoit]_IENavigate($inet,$alink[$search[$z]])
[/autoit][autoit][/autoit][autoit]
Sleep(4000)
$ie_url = _IEPropertyGet($inet, "locationurl")
$source = _INetGetSource($ie_url)$versandtext = _StringBetween($source, '<span id="fshippingSvc">',"</span>")
[/autoit][autoit][/autoit][autoit]
$standard = _StringBetween($source, 'class="sh-TblCnt"><div><div role="alert">',"</div>")_IELinkClickByText($inet, "Alle Details zum Versandanzeigen")
[/autoit][autoit][/autoit][autoit]Sleep(1200)
[/autoit][autoit][/autoit][autoit]$ColorIndex = 3
[/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit][autoit]
#cs
If $excel.Cells($i, 10).Interior.ColorIndex = 16 Then
ContinueLoop
Else
#ce
If $excel.Cells($i, 10).Interior.ColorIndex = 45 Then
ExitLoop
Else
If $excel.Cells($i, 10).Interior.ColorIndex = 5 Then
ExitLoop
Else
If $excel.Cells($i, 10).Interior.ColorIndex = 18 Then
ExitLoop
Else
For $s = 0 To UBound($standard) - 1Select
[/autoit][autoit][/autoit][autoit]Case $versandtext[0] = " - Paketversand"
[/autoit][autoit][/autoit][autoit]
$ColorIndex = 16Case $standard[$s] = $versender[0]
[/autoit][autoit][/autoit][autoit]
$ColorIndex = 45Case $standard[$s] = $versender[2]
[/autoit][autoit][/autoit][autoit]
$ColorIndex = 5Case $standard[$s] = $versender[1]
[/autoit][autoit][/autoit][autoit]
$ColorIndex = 18Case $standard[$s] = $versender[4]
[/autoit][autoit][/autoit][autoit]
$ColorIndex = 45EndSelect
[/autoit][autoit][/autoit][autoit]$excel.Cells($i, 10).Interior.ColorIndex = $ColorIndex
[/autoit][autoit][/autoit][autoit]
Next
EndIf
EndIf
EndIfNext
[/autoit] -
-
mach das = 1 weg.
Nur
[autoit]if $variableIB Then
[/autoit]Gruß
Norman -

Es funktioniert. 1000 Dank