Moin
Ich benutze in meinem Script an einer Stelle die Funktion _StringBetween um den Dateinamen eiens Bildes zu extrahieren. Funktioniert eigentlich ganz gut, aber eben, eigentlich. Manchmal erhalte ich nämlich einfach einen Error welcher bei _StringBetween erzeugt wird.
Der ausgelesene Dateiname wird in eine Variable gespeichert, und um diesen auslesen zu können, muss man mit Arrays arbeiten. Normalerweise klappt dies, manchmal aber liest er anscheinend nichts aus, und somit kann er auch kein Array auslesen. Ich habe es auch mal versucht die "kritischen" Stellen in eine While Schlaufe zu stecken, und diese erst dann zu verlassen wenn der Error nicht mehr vorkommt, jedoch blieb er da die ganze Zeit in der While Schleife stecken, und das Script lief die ganze Zeit.
Hier mal der Code:
Ohne While Schleife
Spoiler anzeigen
#include <String.au3>
#include <FTP_Ex.au3>
#include <inet.au3>
$server = "Server.Provider.ch"
$username = "juanitho"
$pass = _StringEncrypt(0, "Verschlüsselter String", "Schlüssel")
$Open = _FTPOpen("Explosm Comic Upload")
$Conn = _FTPConnect($Open, $server, $username, $pass, True)
$Sourcecode = _InetGetSource("http://explosm.net/comics/random/index.php")
$Link = _StringBetween($Sourcecode, '<img alt="Cyanide and Happiness, a daily webcomic" src="', '"></div><br /><table width="100%" cellspacing=0 cellpadd')
;Extrahieren des reinen Namens
$Filenameue = _StringBetween($Link[0], 'files/', '.png')
;Entfernen allfälliger /-Zeichen
$Filename = StringReplace($Filenameue[0], "/", "_")
;Runterladen des Zufallscomic
InetGet($Link[0], @UserProfileDir & "\Explosm\Random.png")
;Upload des Zufallscomic
$Ftpp = _FtpPutFile($Conn, @UserProfileDir & "\Explosm\Random.png", "/5is07a/Comic/random/Comic.png")
Mit While Schleife:
Spoiler anzeigen
#include <String.au3>
#include <FTP_Ex.au3>
#include <inet.au3>
$server = "Server.Provider.ch"
$username = "juanitho"
$pass = _StringEncrypt(0, "Verschlüsselter String", "Schlüssel")
$Open = _FTPOpen("Explosm Comic Upload - 5is07a - 1337 h4xx0r'z Cr3w")
$Conn = _FTPConnect($Open, $server, $username, $pass, True)
$Sourcecode = _InetGetSource("http://explosm.net/comics/random/index.php")
While 1
$Link = _StringBetween($Sourcecode, '<img alt="Cyanide and Happiness, a daily webcomic" src="', '"></div><br /><table width="100%" cellspacing=0 cellpadd')
If Not @error then ExitLoop
WEnd
;Extrahieren des reinen Namens
While 1
$Filenameue = _StringBetween($Link[0], 'files/', '.png')
If not @error then ExitLoop
WEnd
;Entfernen allfälliger /-Zeichen
$Filename = StringReplace($Filenameue[0], "/", "_")
;Runterladen des Zufallscomic
InetGet($Link[0], @UserProfileDir & "\Explosm\Random.png")
;Upload des Zufallscomic
$Ftpp = _FtpPutFile($Conn, @UserProfileDir & "\Explosm\Random.png", "/5is07a/Comic/random/Comic.png")