Funkion funkioniert nicht wie gewollt

    • Offizieller Beitrag
    Spoiler anzeigen
    [autoit]

    $default = Default
    Global $ftp = "http://www.google.de/"
    _InternetDateienDownloaden($ftp)

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

    ;Dateien die aus dem Internet herruntergeladen werden sollen, werden in dieser Funktion eingebettet.
    Func _InternetDateienDownloaden($ftp)

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

    ;Prüft ob Verbindung zum Internet besteht
    $default = Ping($ftp,500)
    If Not @error Then
    ;Fortsetzen des Programmes ohne weitere Einstellungen
    sleep(1)

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

    Else
    ;Fehlermeldung für User
    MsgBox(48,"Fehler","Sie haben keine Verbindung zum Internet!" & @CRLF & "Deshalb sind wir gezwungen das Programm zu beenden.")

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

    ;Exit Code Tabelle Nr. 10
    Exit 10
    EndIf

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

    ;Dateien werden herruntergeladen

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

    ;data.txt wird heruntergeladen
    $default = InetGet($ftp & 'data.txt',@TempDir & "/data.txt",1)

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

    ;Prüft ob die Datei herruntergeladen wurde
    If $default = 0 Then
    ;Fehlermeldung für User
    MsgBox(48,"Fehler","Wichtige Dateien konnten nicht herruntergeladen werden!" & @CRLF & "Deshalb sind wir gezwungen das Programm zu beenden.")

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

    ;Exit Code Tabelle Nr. 11
    Exit 11
    EndIf

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

    EndFunc

    [/autoit]
  • schau mal das Ergebnis meiner MsgBox an und denk darüber nach ...

    Spoiler anzeigen
    [autoit]

    $default = Default
    Global $ftp = "http://www.google.de/"
    _InternetDateienDownloaden($ftp)

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

    ;Dateien die aus dem Internet herruntergeladen werden sollen, werden in dieser Funktion eingebettet.
    Func _InternetDateienDownloaden($ftp)

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

    ;Prüft ob Verbindung zum Internet besteht
    $default = Ping($ftp,500)
    MsgBox(0, '', $default)
    If $default Then
    ;Fortsetzen des Programmes ohne weitere Einstellungen
    sleep(1)

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

    Else
    ;Fehlermeldung für User
    MsgBox(48,"Fehler","Sie haben keine Verbindung zum Internet!" & @CRLF & "Deshalb sind wir gezwungen das Programm zu beenden.")

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

    ;Exit Code Tabelle Nr. 10
    Exit 10
    EndIf

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

    ;Dateien werden herruntergeladen

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

    ;data.txt wird heruntergeladen
    $default = InetGet($ftp & 'data.txt',@TempDir & "/data.txt",1)

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

    ;Prüft ob die Datei herruntergeladen wurde
    If $default = 0 Then
    ;Fehlermeldung für User
    MsgBox(48,"Fehler","Wichtige Dateien konnten nicht herruntergeladen werden!" & @CRLF & "Deshalb sind wir gezwungen das Programm zu beenden.")

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

    ;Exit Code Tabelle Nr. 11
    Exit 11
    EndIf

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

    EndFunc

    [/autoit]

    MfG Schnuffel

    "Sarkasmus ist die niedrigste Form des Witzes, aber die höchste Form der Intelligenz."
    Val McDermid

    ein paar Infos ...

    Wer mehr als "nur" Hilfe benötigt, kann sich gern im Forum "Programmieranfragen" an uns wenden. Wir helfen in allen Fällen, die die Forenregeln zulassen.

    Für schnelle Hilfe benötigen wir ein ! lauffähiges ! Script, dass wir als Demonstration des Problems testen können. Wer von uns erwartet ein Teilscript erstmal lauffähig zu bekommen, der hat
    1. keine wirkliche Not
    2. keinen Respekt vor Menschen die ihm in ihrer Freizeit Ihre Hilfe anbieten
    3. oder ist einfach nur faul und meint wir coden das für ihn

    In solchen Fällen erlaube ich mir, die Anfrage einfach zu ignorieren. ;)

  • also bei mir kommt die Pingzeit zurück ...

    und wenn es unter https://autoit.de/www.google.de/ die Datei data.txt nicht gibt, dann kann die auch nicht geladen werden ;)

    MfG Schnuffel

    "Sarkasmus ist die niedrigste Form des Witzes, aber die höchste Form der Intelligenz."
    Val McDermid

    ein paar Infos ...

    Wer mehr als "nur" Hilfe benötigt, kann sich gern im Forum "Programmieranfragen" an uns wenden. Wir helfen in allen Fällen, die die Forenregeln zulassen.

    Für schnelle Hilfe benötigen wir ein ! lauffähiges ! Script, dass wir als Demonstration des Problems testen können. Wer von uns erwartet ein Teilscript erstmal lauffähig zu bekommen, der hat
    1. keine wirkliche Not
    2. keinen Respekt vor Menschen die ihm in ihrer Freizeit Ihre Hilfe anbieten
    3. oder ist einfach nur faul und meint wir coden das für ihn

    In solchen Fällen erlaube ich mir, die Anfrage einfach zu ignorieren. ;)

  • Du musst bei InetGet die Option angeben, dass die Funktion nicht warten soll, bis die Datei geladen ist, da ansonsten die Abfrage nach $default schneller kommt als die Wertzuweisung.
    siehe:

    Spoiler anzeigen
    [autoit]

    $default = Default
    Global $ftp = "http://www.autoit.de/"

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

    _InternetDateienDownloaden($ftp)

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

    Global $download = "autoitinfo/hilfedateien/AutoIt-Hilfe-Deutsch-3.3.0.0-Stand-16_09_09.zip"

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

    ;Dateien die aus dem Internet herruntergeladen werden sollen, werden in dieser Funktion eingebettet.
    Func _InternetDateienDownloaden($ftp)

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

    ;Prüft ob Verbindung zum Internet besteht
    $default = Ping($ftp,500)
    MsgBox(0, '', $default)
    If $default <> 0 Then
    ;Fortsetzen des Programmes ohne weitere Einstellungen
    sleep(1)

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

    Else
    ;Fehlermeldung für User
    MsgBox(48,"Fehler","Sie haben keine Verbindung zum Internet!" & @CRLF & "Deshalb sind wir gezwungen das Programm zu beenden.")

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

    ;Exit Code Tabelle Nr. 10
    Exit 10
    EndIf

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

    ;Dateien werden herruntergeladen

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

    ;data.txt wird heruntergeladen
    $default = InetGet("http://www.autoit.de/autoitinfo/hilfedateien/AutoIt-Hilfe-Deutsch-3.3.0.0-Stand-16_09_09.zip","test.zip",1,1)
    MsgBox(0, '', $default)
    ;Prüft ob die Datei herruntergeladen wurde
    If $default = 0 Then
    ;Fehlermeldung für User
    MsgBox(48,"Fehler","Wichtige Dateien konnten nicht herruntergeladen werden!" & @CRLF & "Deshalb sind wir gezwungen das Programm zu beenden.")

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

    ;Exit Code Tabelle Nr. 11
    Exit 11
    EndIf

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

    EndFunc

    [/autoit]

    Edit: nicht warten soll

    MfG Schnuffel

    "Sarkasmus ist die niedrigste Form des Witzes, aber die höchste Form der Intelligenz."
    Val McDermid

    ein paar Infos ...

    Wer mehr als "nur" Hilfe benötigt, kann sich gern im Forum "Programmieranfragen" an uns wenden. Wir helfen in allen Fällen, die die Forenregeln zulassen.

    Für schnelle Hilfe benötigen wir ein ! lauffähiges ! Script, dass wir als Demonstration des Problems testen können. Wer von uns erwartet ein Teilscript erstmal lauffähig zu bekommen, der hat
    1. keine wirkliche Not
    2. keinen Respekt vor Menschen die ihm in ihrer Freizeit Ihre Hilfe anbieten
    3. oder ist einfach nur faul und meint wir coden das für ihn

    In solchen Fällen erlaube ich mir, die Anfrage einfach zu ignorieren. ;)

    Einmal editiert, zuletzt von Schnuffel (27. November 2009 um 23:21)

  • Naja, mein ich ja :rofl:

    so, hab das mal etwas komprimiert ...

    Spoiler anzeigen
    [autoit]

    $default = Default
    Global $ftp = "http://www.autoit.de/"
    Global $download = "autoitinfo/hilfedateien/AutoIt-Hilfe-Deutsch-3.3.0.0-Stand-16_09_09.zip"
    _InternetDateienDownloaden($ftp)

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

    ;Dateien die aus dem Internet herruntergeladen werden sollen, werden in dieser Funktion eingebettet.
    Func _InternetDateienDownloaden($ftp)

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

    ;Prüft ob Verbindung zum Internet besteht

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

    If Ping($ftp,500) = 0 Then
    ;Fehlermeldung für User
    MsgBox(48,"Fehler","Sie haben keine Verbindung zum Internet!" & @CRLF & "Deshalb sind wir gezwungen das Programm zu beenden.")

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

    ;Exit Code Tabelle Nr. 10
    Exit 10
    EndIf

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

    ;Dateien werden herruntergeladen

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

    ;data.txt wird heruntergeladen

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

    ;Prüft ob die Datei herruntergeladen wurde
    If InetGet($ftp & $download,"test.zip",1,1) = 0 Then
    ;Fehlermeldung für User
    MsgBox(48,"Fehler","Wichtige Dateien konnten nicht herruntergeladen werden!" & @CRLF & "Deshalb sind wir gezwungen das Programm zu beenden.")
    ;Exit Code Tabelle Nr. 11
    Exit 11
    EndIf
    EndFunc

    [/autoit]

    MfG Schnuffel

    "Sarkasmus ist die niedrigste Form des Witzes, aber die höchste Form der Intelligenz."
    Val McDermid

    ein paar Infos ...

    Wer mehr als "nur" Hilfe benötigt, kann sich gern im Forum "Programmieranfragen" an uns wenden. Wir helfen in allen Fällen, die die Forenregeln zulassen.

    Für schnelle Hilfe benötigen wir ein ! lauffähiges ! Script, dass wir als Demonstration des Problems testen können. Wer von uns erwartet ein Teilscript erstmal lauffähig zu bekommen, der hat
    1. keine wirkliche Not
    2. keinen Respekt vor Menschen die ihm in ihrer Freizeit Ihre Hilfe anbieten
    3. oder ist einfach nur faul und meint wir coden das für ihn

    In solchen Fällen erlaube ich mir, die Anfrage einfach zu ignorieren. ;)

    Einmal editiert, zuletzt von Schnuffel (27. November 2009 um 23:26)

  • komisch, bei mir geht das auch so ?!?!

    Edit:
    da war wohl gestern abend der Wurm bei mir drin. Sorry.
    Das konnte so gar nicht gehen, da es die referenzierte Datei gar nicht gab.
    Ich habe jetzt bei wachem Verstand das Script auf das notwendige gekürzt und natürlich getestet.

    Spoiler anzeigen
    [autoit]

    Global $ping = "http://www.autoit.de/"

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

    _InternetDateienDownloaden("http://translation.autoit.de/autoitinfo/hilfedateien/AutoIt-Hilfe-Deutsch-3.3.0.0-Stand-16_09_09.zip")

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

    ;Dateien die aus dem Internet herruntergeladen werden sollen, werden in dieser Funktion eingebettet.
    Func _InternetDateienDownloaden($download)

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

    ;Prüft ob Verbindung zum Internet besteht
    If Ping($ping,500) = 0 Then
    ;Fehlermeldung für User
    MsgBox(48,"Fehler","Sie haben keine Verbindung zum Internet!" & @CRLF & "Deshalb sind wir gezwungen das Programm zu beenden.")
    ;Exit Code Tabelle Nr. 10
    Exit 10
    EndIf

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

    ;Dateien werden herruntergeladen

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

    ;data.txt wird heruntergeladen

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

    ;Prüft ob die Datei heruntergeladen wurde

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

    If InetGet($download,@DesktopDir&"\test.zip",1,1) = 0 Then
    ;Fehlermeldung für User
    MsgBox(48,"Fehler","Wichtige Dateien konnten nicht heruntergeladen werden!" & @CRLF & "Deshalb sind wir gezwungen das Programm zu beenden.")
    ;Exit Code Tabelle Nr. 11
    Exit 11
    EndIf
    EndFunc

    [/autoit]

    MfG Schnuffel

    "Sarkasmus ist die niedrigste Form des Witzes, aber die höchste Form der Intelligenz."
    Val McDermid

    ein paar Infos ...

    Wer mehr als "nur" Hilfe benötigt, kann sich gern im Forum "Programmieranfragen" an uns wenden. Wir helfen in allen Fällen, die die Forenregeln zulassen.

    Für schnelle Hilfe benötigen wir ein ! lauffähiges ! Script, dass wir als Demonstration des Problems testen können. Wer von uns erwartet ein Teilscript erstmal lauffähig zu bekommen, der hat
    1. keine wirkliche Not
    2. keinen Respekt vor Menschen die ihm in ihrer Freizeit Ihre Hilfe anbieten
    3. oder ist einfach nur faul und meint wir coden das für ihn

    In solchen Fällen erlaube ich mir, die Anfrage einfach zu ignorieren. ;)

    Einmal editiert, zuletzt von Schnuffel (28. November 2009 um 10:46)