StringLeft

  • Nabend

    Ich versuch hier schon ne Weile mit StringLeft um zu checken ob sich in der Zwischenablage ein Link befindet. Wenn ja, fährt er normal fort, wenn nein, muss er den Link eingeben:

    [autoit]

    $Link = ClipGet()
    If NOT StringLeft($Link, 4) = "http" then
    $Link = InputBox("Titel", "Beschreibung")
    EndIf

    [/autoit]


    Er macht aber trotzdem normal weiter, anstatt mir die InputBox zu bringen. Jemand Rat?

  • Anstatt wieder nen neuen Thread aufzumachen, post ich's lieber hier. Hab da mal soweit das Script geschrieben, scheint aber irgendwo nen Fehler zu haben:

    Spoiler anzeigen
    [autoit]

    #include <String.au3>
    #include <FTP_Ex.au3>
    #include <inet.au3>

    [/autoit] [autoit][/autoit] [autoit]

    ;Allgemeine Parameter
    $settings = "[Number]" & @CRLF & "Value=Default" & @CRLF & @CRLF & "[LastStart]" & @CRLF & "Value=" & @MDAY & "." & @MON & "." & @YEAR
    $Today = @MDAY & "." & @MON & "." & @YEAR

    [/autoit] [autoit][/autoit] [autoit]

    ;Erstellen des Ordners
    DirCreate(@UserProfileDir & "\Explosm")

    [/autoit] [autoit][/autoit] [autoit]

    ;Link des Bildes filtern
    $Sourcecode = _InetGetSource("http://explosm.net/comics/new/index.php")
    $Link = _StringBetween($Sourcecode, '<img alt="Cyanide and Happiness, a daily webcomic" src="', '"></div><br /><table width="100%" cellspacing=0 cellpadd')

    [/autoit] [autoit][/autoit] [autoit]

    ;Überprüfung der settings.ini
    If not FileExists("settings.ini") then
    FileWrite("settings.ini", $settings)
    MsgBox(16+0, "Error", "Standardwert in der settings.ini eingetragen! Bitte ändern!")
    Exit
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    ;Nummerierung
    ;$Filename = IniRead("settings.ini", "Number", "Value", "Default")
    $Filename = _StringBetween($Link[0], 'files/', '.png')

    [/autoit] [autoit][/autoit] [autoit]

    ;Datumscheck
    $Date = IniRead("settings.ini", "LastStart", "Value", @MDAY & "." & @MON & "." & @YEAR)
    If $Date = $Today Then
    $Warning = MsgBox(32+4, "Warnung!", "Das Script wurde heute bereits einmal ausgeführt. Wenn du fortfährst, wird der Ordner von heute überschrieben. Fortfahren?")
    If $Warning = 7 then
    Exit
    EndIf
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    ;Abbruch bei Standardwert
    If $Filename = "Default" Then
    MsgBox(16+0, "Error", "Standardwert in der settings.ini eingetragen! Bitte ändern!")
    Exit
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    ;Bild wird heruntergeladen
    InetGet($Link[0], @UserProfileDir & "\Explosm\Comic.png")

    [/autoit] [autoit][/autoit] [autoit]

    ;Serverinformationen, Passwort wurde verschlüsselt
    $server = "Server.Provider.ch"
    $username = "Account"
    $pass = _StringEncrypt(0, "abcd1234", "wxyz5678")

    [/autoit] [autoit][/autoit] [autoit]

    ;Öffnen der FTP-Verbindung
    $Open = _FTPOpen("Explosm Comic Upload")
    If @error Then
    MsgBox(16+0, "Error", "Beim öffnen der Session ist ein Fehler aufgetreten!")
    Exit
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    ;Verbinden mit dem Server
    $Conn = _FTPConnect($Open, $server, $username, $pass, True)
    If @error Then
    MsgBox(16+0, "Error", "Verbindung fehlgeschlagen! Bitte versuche es später erneut.")
    Exit
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    ;Ordnererstellung
    $Folder = "/5is07a/Comic/old/" & $Filename[0]
    $FTPm = _FTPMakeDir($Conn, $Folder)

    [/autoit] [autoit][/autoit] [autoit]

    ;Upload des Bildes und der Index Datei
    $Ftpp = _FtpPutFile($Conn, @UserProfileDir & "\Explosm\Comic.png", "/5is07a/Comic/old/" & $Filename[0] & "/Comic.png")
    $Ftpp_archive = _FtpPutFile($Conn, "Comic_Old.html", "/5is07a/Comic/old/" & $Filename[0] & "/index.html")
    If @error Then
    MsgBox(16+0, "Error", "Beim Upload des Archivcomics ist ein Fehler aufgetreten!")
    Exit
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    ;Upload des Bildes von heute
    $Ftpp_today = _FtpPutFile($Conn, @UserProfileDir & "\Explosm\Comic.png", "/5is07a/Comic/New/Comic.png")
    If @error Then
    MsgBox(16+0, "Error", "Beim Upload des heutigen Comics ist ein Fehler aufgetreten!")
    Exit
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    ;Löschen des Bild Ordners
    DirRemove(@UserProfileDir & "\Explosm", 1)

    [/autoit] [autoit][/autoit] [autoit]

    ;Nummer erhöhen
    IniWrite("settings.ini", "LastStart", "Value", $Today)

    [/autoit] [autoit][/autoit] [autoit]

    ;Download der bisherigen HTML Archivseite
    InetGet("http://Server.Provider.ch/5is07a/Comic/old/index.html", "Original.html")

    [/autoit] [autoit][/autoit] [autoit]

    ;Öffnen der Dateien
    $Original = FileRead("Original.html")
    $Up = FileRead("Up.html")
    $Down = FileRead("Down.html")

    [/autoit] [autoit][/autoit] [autoit]

    ;Angepasster Inhalt wird gefiltert
    $Lines = _StringBetween($Original, "<!-- main error message -->", '<div style="margin: 10px;">')

    [/autoit] [autoit][/autoit] [autoit]

    ;Löschen und neu schreiben der index.html
    FileDelete("index.html")
    FileWrite("index.html", $Up & @CRLF & $Lines[0] & "<br/>" & $Today & ": <a href=" & $Filename[0] & ">" & $Filename[0] & "</a>" & $Down)

    [/autoit] [autoit][/autoit] [autoit]

    ;Abbruch wen bereits geuploadet
    If $Date = $Today Then
    Exit
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    ;Upload der HTML Seite fürs Archiv
    $Ftpp_index = _FtpPutFile($Conn, "index.html", "/5is07a/Comic/old/index.html")

    [/autoit] [autoit][/autoit] [autoit]

    ;Löschen der Datei nach dem Upload
    FileDelete("index.html")
    FileDelete("Original.html")

    [/autoit] [autoit][/autoit] [autoit]

    ;Schliessen der FTP Verbindung
    $Ftpc = _FTPClose($Open)

    [/autoit]


    Scheint ein Problem beim Upload zu geben, da er "Beim Upload des Archivcomics ist ein Fehler aufgetreten!" zurück gibt. Sieht wer nen Fehler?

  • Hmm du hast anstatt \ / genommen siehe: "/5is07a/Comic/old/"

    Edit: Das hast du einmal bei der Deklarierung gemacht der Variable $Folder = "/5is07a/Comic/old/" & $Filename[0] und weiter unten. Änder doch einfach $Folder um und schreib unten anstatt "\5is07a\Comic\old\" & $Filename[0] - $Folder hin ?

  • Ich glaube nicht dass es an den / liegt. Bis gestern Abend klappte alles so, daraufhin hab ich ein paar Änderungen am Script vorgenommen. Seit dem scheint es nicht mehr so ganz zu klappen.
    Hab mir den Link angeschaut und gesehen, dass der Filename dieses mal nen / hat, was wahrscheinlich zu einem Problem führt wenn der Ordner erstellt werden soll (ich dachte die machen dass immer schön nach einem Muster, aber falsch gedacht). Jedenfalls danke, ich schreib nochmal wenn was ist.