Verzeichnissinhalt in MsgBox ausgeben.

  • Hallo Leute,
    ich habe hier ein kleines Prob. ich versuche als Info eine MsgBox zu öffnen, die ein paar Dateien auflistet.
    Ich bin im Moment bei dem Punkt angekommen, wo die Dateien nur einzeln angezeigt werden, wenn ich mit OK bestätige, wird die nächste Datei in einer weiteren Box angezeigt.
    Gibt es nicht die Möglichkeit alle in einer Box anzuzeigen? wenn möglich unter einander?
    Die Suche hat mir leider nichts angezeigt das ich Verstehe bzw. was damit anfangen kann.

    Vielen Dank.


    Spoiler anzeigen
    [autoit][/autoit] [autoit][/autoit] [autoit]

    ;DuxRestore.au3
    #include <file.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #Include <GuiButton.au3>

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

    #region MapServerLaufwerke
    $aServer_2LW = IniRead("Persuasion.ini", "Server_2", "LWServer_1" ,"LaufwerServer_1")
    $aServer_2Pfad = IniRead("Persuasion.ini", "Server_2", "Pfad" ,"PfadServer_2")

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

    DriveMapAdd($aServer_2LW, $aServer_2Pfad)

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

    #endregion

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

    Global $GuiMaske_3 = GUICreate("GuiVerzAuswahl",500,250,-1,-1,-1,-1)
    GUICtrlCreateLabel("Dux Restore",210,10,355,35,-1,-1)
    GUICtrlSetFont(-1,12,700,0,"MS Sans Serif")
    GUICtrlSetColor(-1,"0x0000FF")
    GUICtrlSetBkColor(-1,"-2")
    GUICtrlCreateLabel("Klicken Sie auf den Button",20,60,127,20,-1,-1)
    GUICtrlCreateLabel("Verzeichnis / RFC",150,60,107,15,-1,-1)
    GUICtrlSetFont(-1,8,700,0,"MS Sans Serif")
    GUICtrlCreateLabel("um das Verzeichnis mit den Files auszuwählen",260,60,238,20,-1,-1)
    GUICtrlCreateLabel("welches Sie restoren bzw. zurück kopieren wollen.",20,80,232,15,-1,-1)

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

    $AuswahlButton = GUICtrlCreateButton("Verzeichnis / RFC",100,120,120,30,-1,-1)
    $Abbruch_2 = GUICtrlCreateButton("Cancel",260,120,120,30,-1,-1)
    Global $aRestPfad = IniRead("Persuasion.ini", "Server_2", "Exported", "")
    ; Global $aRestVerz = GUICtrlCreateInput($aRestPfad,20,60,500,20,-1,512)

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

    ; $weiter_2 = GUICtrlCreateButton("OK",20,120,100,30,-1,-1)

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

    GUISetState(@SW_SHOW,$GuiMaske_3)
    ; GUICtrlCreateLabel("Wählen Sie das Verzeichnis (RFC) aus der zurück gesichert werden soll.", 20, 20)

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

    Func Wieder()
    EndFunc

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GuiMaske_3
    Exit
    Case $AuswahlButton
    $sPath = FileSelectFolder("RFC / Verzeichnis", $aRestPfad)
    $asSplit = StringSplit($sPath, '\')
    $Verz = $asSplit[$asSplit[0]]
    Wiederholen()
    Case $Abbruch_2
    Exit
    EndSwitch
    WEnd

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

    Func Wiederholen()

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

    ; Zeigt die Dateinamen aller Dateien im aktuellen Verzeichnis an.
    $search = FileFindFirstFile($aRestPfad & "" & $Verz & "" & "*.*")
    ; Prüfen, ob die Suche erfolgreich war
    If $search = -1 Then
    MsgBox(0, "Fehler", "Es wurden keine Dateien/Verzeichnisse gefunden, die zu dem Suchmuster passen")
    Exit
    EndIf

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

    While 1
    Global $file = FileFindNextFile($search)
    If @error Then ExitLoop
    ; Global $file = $file + 1
    $aBest = MsgBox(262, "RFC / Verzeichnis", "Sie haben dea Verzeichnis " & $Verz & " ausgewählt" & @crlf & "Folgende Dateien sind darin enthalten:" & @CRLF & $file)
    Switch $aBest
    Case 2 ; Abbruch
    Exit
    Case 10 ; Wiederholen
    Wieder()
    Case 11 ; Weiter
    Weiter ()
    EndSwitch
    WEnd
    EndFunc
    FileClose($search)
    Func Weiter()
    MsgBox(0,"","Weiter")
    EndFunc

    [/autoit]

    Ja, ich weiß es auch, das Problem ist einen halben Meter vor dem Bildschirm. 8o

    Einmal editiert, zuletzt von Mr-Ferret (1. Februar 2014 um 15:01)

  • Die MsgBox darf nicht in der Schleife sein.

    Die Daten die du anzeigen willst in der MsgBox schriebst du stattdessen in eine Variable.

    mit $var &= $neuedaten kannst du eine Variable bei jedem Durchgang der Schleife mit neuen Daten füllen

    mit $var &= @crlf & $neuedaten wird dir dabei helfen das es auf mehreren Zeilen ausgegeben wird ;)

  • Erst mal vielen Dank,

    Ich habe wieder etwas gelernt :!:

    Ich muß gestehen, das prinzip mit den Array's ist mir noch nicht klar, aber auch das werde ich über kurz oder lang noch lernen (müssen)

    Gruß
    Manfred
    PS: Ihr seid super :thumbup:

    Ja, ich weiß es auch, das Problem ist einen halben Meter vor dem Bildschirm. 8o