[dochnich]Dateien mit der Endung.cabf aber unbekannten Dateinamen in einem ListView-Control anzeigen

  • so sieht die GUI meines AdressBook´s jetzt aus, wie schaffe ich es jetzt, dass ich sämtliche Dateien die im ScriptDir liegen und die Endung .cabf haben in der ListView angezeigt werden?

    Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>

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

    $Form1 = GUICreate("CAB2.0", 479, 584, 359, 115)
    $ListView1 = GUICtrlCreateListView("", 24, 0, 217, 513)
    $MenuItem4 = GUICtrlCreateMenu("Datei")
    $MenuItem5 = GUICtrlCreateMenu("Neu", $MenuItem4)
    $MenuItem6 = GUICtrlCreateMenuItem("Kontakt", $MenuItem5)
    $MenuItem7 = GUICtrlCreateMenu("E-Mail", $MenuItem5)
    $MenuItem8 = GUICtrlCreateMenuItem("An alle Kontakte", $MenuItem7)
    $MenuItem9 = GUICtrlCreateMenuItem("An einzelnen Kontakt", $MenuItem7)
    $MenuItem13 = GUICtrlCreateMenuItem("Bearbeiten", $MenuItem4)
    $MenuItem10 = GUICtrlCreateMenu("Löschen", $MenuItem4)
    $MenuItem11 = GUICtrlCreateMenuItem("Alle Kontakte", $MenuItem10)
    $MenuItem12 = GUICtrlCreateMenuItem("Einzelnen Kontakt", $MenuItem10)
    $MenuItem1 = GUICtrlCreateMenu("Backup")
    $MenuItem3 = GUICtrlCreateMenuItem("Backup von allem", $MenuItem1)
    $MenuItem2 = GUICtrlCreateMenuItem("Backup von einem einzelnem Kontakt", $MenuItem1)
    $MenuItem14 = GUICtrlCreateMenu("Hilfe")
    $MenuItem15 = GUICtrlCreateMenuItem("Informationen zu CAB 0.2", $MenuItem14)
    $MenuItem16 = GUICtrlCreateMenuItem("Hilfe zu CAB 0.2", $MenuItem14)
    GUISetState(@SW_SHOW)

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit


    EndSwitch
    WEnd

    [/autoit]

    Einmal editiert, zuletzt von computerfritze (29. Juli 2007 um 18:27)

  • jetzt siehts so aus

    Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>
    #include <File.au3>

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

    $sdir = @ScriptDir
    $a1 = _FileListToArray(@ScriptDir, "*.cabf")
    $Form1 = GUICreate("CAB2.0", 479, 584, 359, 115)
    $ListView1 = GUICtrlCreateListView($a1, 24, 0, 217, 513)
    $MenuItem4 = GUICtrlCreateMenu("Datei")
    $MenuItem5 = GUICtrlCreateMenu("Neu", $MenuItem4)
    $MenuItem6 = GUICtrlCreateMenuItem("Kontakt", $MenuItem5)
    $MenuItem7 = GUICtrlCreateMenu("E-Mail", $MenuItem5)
    $MenuItem8 = GUICtrlCreateMenuItem("An alle Kontakte", $MenuItem7)
    $MenuItem9 = GUICtrlCreateMenuItem("An einzelnen Kontakt", $MenuItem7)
    $MenuItem13 = GUICtrlCreateMenuItem("Bearbeiten", $MenuItem4)
    $MenuItem10 = GUICtrlCreateMenu("Löschen", $MenuItem4)
    $MenuItem11 = GUICtrlCreateMenuItem("Alle Kontakte", $MenuItem10)
    $MenuItem12 = GUICtrlCreateMenuItem("Einzelnen Kontakt", $MenuItem10)
    $MenuItem1 = GUICtrlCreateMenu("Backup")
    $MenuItem3 = GUICtrlCreateMenuItem("Backup von allem", $MenuItem1)
    $MenuItem2 = GUICtrlCreateMenuItem("Backup von einem einzelnem Kontakt", $MenuItem1)
    $MenuItem14 = GUICtrlCreateMenu("Hilfe")
    $MenuItem15 = GUICtrlCreateMenuItem("Informationen zu CAB 0.2", $MenuItem14)
    $MenuItem16 = GUICtrlCreateMenuItem("Hilfe zu CAB 0.2", $MenuItem14)
    $sdir = @ScriptDir
    GUISetState(@SW_SHOW)

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

    Global $a1 = _FileListToArray($sdir, "*.cabf")

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit


    EndSwitch
    WEnd

    [/autoit]


    funzt aber immer no ned

  • Da du nichteinmal überprüfst, ob etwas im array steht.. sag ich mal nix zu.

    aber eins kann ich dir sagen: der syntax ist falsch. Du kannst die wildcard nicht einfach so benutzen! Steht alles in der Hilfe!

    und schau doch was im array steht, dann schaffst dus allein ;)

  • das liegt daran, das Du jetzt die Dateinamen in dem Array hast, mehr nicht. Das war der erste Schritt. Nun könntest Du zum Beispiel mit einer Schleife den Array durchlaufen und dabei die Dateien auslesen und dem Listview hinzufügen. Oder willst Du nur die Dateiliste?

    @huggy
    die Wildcard funzt ;)

    Einmal editiert, zuletzt von jonk (28. Juli 2007 um 16:52)

  • Schleife. Array. so weit kapiert :)
    Aber wie mach ich das mit der Schleife ?(
    (Tschuldigung, ich versteh das Prinzip schon aber wie Code ich das jetzt ?(

  • Versuch mal bitte das hier:

    Spoiler anzeigen
    [autoit]


    #include <GUIConstants.au3>
    #include <File.au3>

    $sdir = @ScriptDir
    $a1 = _FileListToArray($sdir, "*.cabf")
    If @error or Not IsArray($a1) Then
    MsgBox(16,"schwerer Fehler","Hier eine Fehlermeldung ausgeben") ; oder entsprechend reagieren
    Exit
    EndIf

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

    ; #include <Array.au3>
    ;_ArrayDisplay($a1,$sdir)

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

    $Form1 = GUICreate("CAB2.0", 479, 584, 359, 115)
    $ListView1 = GUICtrlCreateListView("Dateiname ", 24, 0, 217, 513)
    $MenuItem4 = GUICtrlCreateMenu("Datei")
    $MenuItem5 = GUICtrlCreateMenu("Neu", $MenuItem4)
    $MenuItem6 = GUICtrlCreateMenuItem("Kontakt", $MenuItem5)
    $MenuItem7 = GUICtrlCreateMenu("E-Mail", $MenuItem5)
    $MenuItem8 = GUICtrlCreateMenuItem("An alle Kontakte", $MenuItem7)
    $MenuItem9 = GUICtrlCreateMenuItem("An einzelnen Kontakt", $MenuItem7)
    $MenuItem13 = GUICtrlCreateMenuItem("Bearbeiten", $MenuItem4)
    $MenuItem10 = GUICtrlCreateMenu("Löschen", $MenuItem4)
    $MenuItem11 = GUICtrlCreateMenuItem("Alle Kontakte", $MenuItem10)
    $MenuItem12 = GUICtrlCreateMenuItem("Einzelnen Kontakt", $MenuItem10)
    $MenuItem1 = GUICtrlCreateMenu("Backup")
    $MenuItem3 = GUICtrlCreateMenuItem("Backup von allem", $MenuItem1)
    $MenuItem2 = GUICtrlCreateMenuItem("Backup von einem einzelnem Kontakt", $MenuItem1)
    $MenuItem14 = GUICtrlCreateMenu("Hilfe")
    $MenuItem15 = GUICtrlCreateMenuItem("Informationen zu CAB 0.2", $MenuItem14)
    $MenuItem16 = GUICtrlCreateMenuItem("Hilfe zu CAB 0.2", $MenuItem14)

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


    If IsArray($a1) Then
    For $i = 1 to $a1[0]
    GUICtrlCreateListViewItem($a1[$i],$ListView1)
    Next
    EndIf

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

    GUISetState(@SW_SHOW)

    While 1
    Local $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    EndSwitch
    WEnd

    [/autoit]


    mfg

    aax

  • [autoit]


    $a1 = _FileListToArray(@ScriptDir, "*.cabf")

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

    if isArray($a1) then
    for $i=1 to $a1[0]
    Msgbox(0,"xyz",$a[$i])
    next
    endif

    [/autoit]
    Zitat


    Tschuldigung, ich versteh das Prinzip schon aber wie Code ich das jetzt

    Für so etwas gibt es 1001 Beispiel in der Hilfe. Mit der Hilfe dauert es vielleicht etws länger um zum richtigen Ergebnis zu kommen, man lernt dabei aber ne Menge mehr.

    Edit:
    och Mensch ... jetzt hat @aax es verraten 8o

    Einmal editiert, zuletzt von jonk (28. Juli 2007 um 17:38)

  • [autoit]

    $sdir = @ScriptDir&"\"

    Global $a1 = _FileListToArray($sdir, "*.cabf")

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

    If IsArray($a1) = 1 Then
    Dim $item[Ubound($a1)-1]
    For $i = 1 To Ubound($a1)-1
    $item[$i] = GuiCtrlCreateListViewItem($a1[$i], $ListView1)
    Next
    EndIf

    [/autoit]

    naja ka ob das funktioniert nur mal schnell zusammengeschrieben

  • um das ListView komplett zu leeren kannst du den Befehl

    [autoit]

    _GUICtrlListViewDeleteAllItems

    [/autoit]

    nutzen :tongue:

    Schau dir mal in der englischen Hilfe die ListView-Befehle an ;)