filexists

  • hi, ich habe ein kleines problem wo ich grad absolut net drauf klarkomme.
    ich würde gerne aus einer inputbox und aus einer editbox einen dateipfad prüfen, bei der inpubox funktioniert das ohne problem, aber bei der editbox nicht.
    kann mir da wer auf die sprünge helfen?

    hier mal was zum testen.

    [autoit]

    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>

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

    $Form1 = GUICreate("Form1", 252, 82, 374, 242,-1, 0x10)
    $input = GUICtrlCreateInput("", 34, 16, 121, 21)
    guictrlsetstate(-1,8)
    $edit = GUICtrlCreateEdit("", 34, 42, 121, 21)
    guictrlsetstate(-1,8)
    $start1 = GUICtrlCreateButton("start1", 164, 16, 75, 25, 0)
    $start2 = GUICtrlCreateButton("start2", 164, 40, 75, 25, 0)
    GUISetState(@SW_SHOW)

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    case $start1
    variante1()
    case $start2
    variante2()
    EndSwitch
    WEnd

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

    func variante1()
    $bla = GUICtrlRead($input)
    if not FileExists($bla) Then
    MsgBox(48,"Achtung!", $bla)
    Else
    MsgBox(48,"Achtung!", "alles ok")
    EndIf
    EndFunc

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

    func variante2()
    $bla = GUICtrlRead($edit)
    if not FileExists($bla) Then
    MsgBox(48,"Achtung!", $bla)
    Else
    MsgBox(48,"Achtung!", "alles ok")
    EndIf
    EndFunc

    [/autoit]

    Einmal editiert, zuletzt von knx (28. Dezember 2008 um 16:49)

  • wenn ich im editfeld ne datei reinziehe und start2 drücke gibt der die fehlermeldung aus.
    was er im ersten feld(inputfeld) nicht macht, was mich verwundert, da es eigentlich der selbe code ist.

  • Gibt es Fehlermeldungen? Steht bei Variante 2 in $bla auch wirklich der Pfad?
    Enthält der Pfad Leerzeichen? Dann probier mal "" um den Pfad zu setzen. Das Problem kenn ich von der CMD.

    Edit: to slow...

  • kann ich alles ausschliessen, auch wenn ich das editfeld so groß ziehe das der komplette pfad ohne umbruch etc reinpasst kommt die fehlermeldung obwohl die datei existiert.

    der pfad wird auch korrekt in der variable $bla abgelegt. nur halt im nachhinein nicht von filexists erkannt 0_0

  • irgendein Zeilenumbruch ist da schon drin.
    Siehe:

    Spoiler anzeigen
    [autoit]

    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>

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

    $Form1 = GUICreate("Form1", 352, 82, 374, 242,-1, 0x10)
    $input = GUICtrlCreateInput("", 34, 16, 200, 21)
    guictrlsetstate(-1,8)
    $edit = GUICtrlCreateEdit("", 34, 42, 200, 21)
    guictrlsetstate(-1,8)
    $start1 = GUICtrlCreateButton("start1", 264, 16, 75, 25, 0)
    $start2 = GUICtrlCreateButton("start2", 264, 40, 75, 25, 0)
    GUISetState(@SW_SHOW)

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    case $start1
    variante1()
    case $start2
    variante2()
    EndSwitch
    WEnd

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

    func variante1()
    $bla = GUICtrlRead($input)
    ConsoleWrite("-"&$bla&"-" & @CRLF)
    if not FileExists($bla) Then
    MsgBox(48,"Achtung!", $bla)
    Else
    MsgBox(48,"Achtung!", "alles ok")
    EndIf
    EndFunc

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

    func variante2()
    $bla = GUICtrlRead($edit)
    ConsoleWrite("-"&$bla&"-" & @CRLF)
    if not FileExists($bla) Then
    MsgBox(48,"Achtung!", $bla)
    Else
    MsgBox(48,"Achtung!", "alles ok")
    EndIf
    EndFunc

    [/autoit]

    Wenn Du den Text aus Control 1 in das Edit-Control kopierst, funktioniert Deine Abfrage.
    Nur bei Drag&Drop wird automatisch ein Zeilenumbruch eoingefügt.
    Ob man den unterdrücken kann weiß ich leider nicht. Hab iin der Hilfe so nix gesehen.

    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. Dezember 2008 um 16:44)

  • stringtrimright($bla,2) wars gewesen, danke euch vielmals!
    nur komisch das der umbruch nicht mitkopiert wurde, habe es auch mit clipput probiert...