Einer List Box nur dateinamen zuteilen die in einem Ordner sind ?

  • Hallo liebe Gemeinde

    Ich habe eine GUI die im ersten ListFeld nur namen von Dateien auflisten soll ich komme aber nicht weiter...
    mit filefindfirstfile kriege ich zwar so wie es scheint dateinamen in ein array aber wie kriege ich die da wieder raus ? und ganz besonders wie mache ich das ohne das die dateierweiterung wie z.B. txt noch mit dabei steht ?
    ich komme da irgendwie nicht weiter

    Hier mal die Gui

    MFG Eistee

    Spoiler anzeigen
    [autoit]

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

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

    $search = FileFindFirstFile("C:\BS\XP-SideBar\" & "*.*")

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

    While 1
    $file = FileFindNextFile($search)
    If @error Then ExitLoop

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

    $F1 = FileOpen("test.txt",1)
    FileWrite($F1,$file)
    FileClose($F1)
    $file1 = FileRead("test.txt")
    WEnd

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

    $Form1 = GUICreate("Form1", 398, 342, 726, 184)
    GUISetBkColor(0x000000)
    $List1 = GUICtrlCreateList("", 8, 8, 160, 240)
    GUICtrlSetData(-1, $file1)
    $List2 = GUICtrlCreateList("", 229, 8, 160, 240)
    GUICtrlSetData(-1, "test|test2|test3|test4")
    $Button1 = GUICtrlCreateButton("+", 184, 104, 30, 25, 0)
    $Button2 = GUICtrlCreateButton("-", 184, 144, 30, 25, 0)
    $Input1 = GUICtrlCreateInput("Preis Einkauf in €", 229, 250, 160, 25)
    $Button3 = GUICtrlCreateButton("Neuer Artikel", 8, 250, 160, 25, 0)
    $Button4 = GUICtrlCreateButton("Druck Einkauf", 148, 304, 100, 25, 0)
    $Pic1 = GUICtrlCreatePic("C:\Dokumente und Einstellungen\Administrator\Desktop\PS CS3 Portable\Nützliches\Vorlagen\BG.jpg", 0, 0, 396, 340, BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS,$WS_DISABLED))
    GUISetState(@SW_SHOW)

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

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

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

    EndSwitch
    WEnd

    [/autoit]


    Edit : ok habe es hingekriegt das die Liste die files anzeigt aber nur als lange zeile und mit dateiendung...
    kann mir da jemand helfen ? bitte ^^

    MFG


    P.s. so gehts schon mal nicht ...

    Spoiler anzeigen
    [autoit]

    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <ListBoxConstants.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #NoTrayIcon

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

    $search = FileFindFirstFile("C:\BS\XP-SideBar\" & "*.*")

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

    While 1
    $file = FileFindNextFile($search)
    If @error Then ExitLoop
    $F1 = FileOpen("test.txt",1)
    FileWrite($F1,$file)
    FileClose($F1)
    $file1 = FileRead("test.txt")
    WEnd

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

    $file2 = StringRegExp($file1, '*.*')

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

    $Form1 = GUICreate("Form1", 398, 342, 726, 184)
    GUISetBkColor(0x000000)
    $List1 = GUICtrlCreateList("", 8, 8, 160, 240)
    GUICtrlSetData(-1, $file2)
    $List2 = GUICtrlCreateList("", 229, 8, 160, 240)
    GUICtrlSetData(-1, "test|test2|test3|test4")
    $Button1 = GUICtrlCreateButton("+", 184, 104, 30, 25, 0)
    $Button2 = GUICtrlCreateButton("-", 184, 144, 30, 25, 0)
    $Input1 = GUICtrlCreateInput("Preis Einkauf in €", 229, 250, 160, 25)
    $Button3 = GUICtrlCreateButton("Neuer Artikel", 8, 250, 160, 25, 0)
    $Button4 = GUICtrlCreateButton("Druck Einkauf", 148, 304, 100, 25, 0)
    $Pic1 = GUICtrlCreatePic("C:\Dokumente und Einstellungen\Administrator\Desktop\PS CS3 Portable\Nützliches\Vorlagen\BG.jpg", 0, 0, 396, 340, BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS,$WS_DISABLED))
    GUISetState(@SW_SHOW)

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

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

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

    EndSwitch
    WEnd

    [/autoit]
  • ist

    [autoit]


    _FileListToArray

    [/autoit]

    nich besser geeignet???

    [autoit]


    ;das würde dir alles vom desktop anzeigen
    #Include <File.au3>
    #Include <Array.au3>
    $FileList=_FileListToArray(@DesktopDir,*.*,1)
    If @Error=1 Then
    MsgBox (0, " ", "Keine Dateien ")
    Exit
    EndIf
    _ArrayDisplay($FileList, "$FileList ")

    [/autoit]

    in der hilfe steht wie du die einzelnen dateien auslesen kannst im array unter bemerkungen

  • Vielen Dank Sithlord ich habe es mittlerweile Hinbekommen

    aber eine Frage hätte ich noch :

    die linke listBox zeigt alle txt Dateien an die im jeweiligen Ordner liegen.
    Wenn ich in der linken leiste eine Datei Auswähle und auf das Plus drücke soll sie Auf der anderen listbox auch erscheinen (geht bereits)
    wie mache ich das jetzt das das script alle auf der reichten seite stehenden dateien unsichtbar Öffnet (also FileOpen) und die zweite zeile jeder datei (filereadline)
    miteinander addiert und im inputfeld sozusagen den Preis des Gesamten Einkaufs anzeigt ?

    Sinn des Ganzen ist ein Programm bei dem man neue Artikel hinzufügen kann und des denn auf der Rechten seite alle Artikel Auflistet und unten gleich den Preis stehen hatt

    MFG Eistee

  • Sorry wollte ich eigentlich oben anhängen hatte ich vergessen hier ist es ^^

    MFG Eistee

    Spoiler anzeigen
    [autoit]

    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <ListBoxConstants.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #NoTrayIcon

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

    $search = FileFindFirstFile(@ScriptDir & "\Neuer Ordner" & "\*.*")

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

    While 1
    $file = FileFindNextFile($search)
    If @error Then ExitLoop
    $F1 = FileOpen("test.txt",1)
    FileWrite($F1,$file)
    FileClose($F1)
    $file1 = FileRead("test.txt")
    $file2 = StringRegExpReplace($file1, '.txt',"|")
    WEnd

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

    $Form1 = GUICreate("Form1", 398, 342, 726, 184)
    GUISetBkColor(0x000000)
    $List1 = GUICtrlCreateList("", 8, 8, 160, 240)
    GUICtrlSetData(-1, $file2)
    $List2 = GUICtrlCreateList("", 229, 8, 160, 240)
    $Button1 = GUICtrlCreateButton("+", 184, 104, 30, 25, 0)
    $Button2 = GUICtrlCreateButton("-", 184, 144, 30, 25, 0)
    $Input1 = GUICtrlCreateInput("Preis Einkauf in €", 229, 250, 160, 25)
    $Button3 = GUICtrlCreateButton("Neuer Artikel", 8, 250, 160, 25, 0)
    $Button4 = GUICtrlCreateButton("Druck Einkauf", 148, 304, 100, 25, 0)
    $Pic1 = GUICtrlCreatePic("BG.jpg", 0, 0, 396, 340, BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS,$WS_DISABLED))
    GUISetState(@SW_SHOW)

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    FileDelete("test.txt")
    Exit
    Case $Button1
    _1 ()
    Case $Button2
    _2 ()
    EndSwitch
    WEnd

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

    Func _1 ()
    GUICtrlSetData($List2, GUICtrlRead($List1))
    EndFunc

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

    Func _2 ()
    GUICtrlSetData($List2, "")
    EndFunc

    [/autoit]
  • also ich hab gestern noch vieles probiert aber habs nich zum laufen bekommen vielleicht kannst du ja was damit anfangen

    [autoit]


    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <ListBoxConstants.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #include <Array.au3>
    #NoTrayIcon

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

    $search = FileFindFirstFile(@ScriptDir & "\" & "\*.txt")

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

    While 1
    $file = FileFindNextFile($search)
    If @error Then ExitLoop
    $F1 = FileOpen("test.txt",1)
    FileWrite($F1,$file)
    FileClose($F1)
    $file1 = FileRead("test.txt")
    $file2 = StringRegExpReplace($file1, '.txt',"|")
    WEnd

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

    global $Array[1]
    $Array[0] = ""

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

    $Form1 = GUICreate("Form1", 398, 342, 726, 184)
    GUISetBkColor(0x000000)
    $List1 = GUICtrlCreateList("", 8, 8, 160, 240)
    GUICtrlSetData(-1, $file2)
    $List2 = GUICtrlCreateList("", 229, 8, 160, 240)
    $Button1 = GUICtrlCreateButton("+", 184, 104, 30, 25, 0)
    $Button2 = GUICtrlCreateButton("-", 184, 144, 30, 25, 0)
    $Input1 = GUICtrlCreateInput("", 229, 250, 160, 25)
    $Button3 = GUICtrlCreateButton("Neuer Artikel", 8, 250, 160, 25, 0)
    $Button4 = GUICtrlCreateButton("Druck Einkauf", 148, 304, 100, 25, 0)
    $Button92 = GUICtrlCreateButton("Generieren", 148, 276, 100, 25, 0)
    $Pic1 = GUICtrlCreatePic("BG.jpg", 0, 0, 396, 340, BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS,$WS_DISABLED))
    GUISetState(@SW_SHOW)

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    FileDelete("test.txt")
    Exit
    Case $Button1
    _1 ()
    Case $Button2
    _2 ()
    Case $Button92
    _read()
    EndSwitch
    WEnd

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

    Func _1 ()

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

    GUICtrlSetData($List2, GUICtrlRead($List1))
    $manmanman=guictrlread($list1)
    $einkaufsliste=fileopen(@appdatadir&"/liste.txt",1)
    filewriteline($einkaufsliste,$manmanman)
    fileclose($einkaufsliste)
    _ArrayAdd($array,$manmanman)
    EndFunc

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

    Func _2 ()
    GUICtrlSetData($List2, "")
    EndFunc

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

    func _read()
    $count = 1
    $einkaufsliste3=fileopen(@appdatadir&"/liste.txt",1)
    for $i = 1 to ubound($array-1)
    $wasdranist=fileopen(@desktopdir&"/"&filereadline($einkaufsliste3,$array[$i]))
    $wert=filereadline($wasdranist,2)
    fileclose($wasdranist)
    $blablub=guictrlread($input1)
    guictrlsetdata($input1,$blablub+$wert)
    $count+=1
    next
    fileclose($einkaufsliste3)
    endfunc

    [/autoit][autoit][/autoit][autoit][/autoit]
  • Achwas das wird schon ;)

    Spoiler anzeigen
    [autoit]


    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <ListBoxConstants.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #include <GUIListBox.au3>
    #NoTrayIcon

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

    $search = FileFindFirstFile(@ScriptDir & "\Neuer Ordner" & "\*.*")

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

    While 1
    $file = FileFindNextFile($search)
    If @error Then ExitLoop
    $F1 = FileOpen("test.txt", 1)
    FileWrite($F1, $file)
    FileClose($F1)
    $file1 = FileRead("test.txt")
    $file2 = StringRegExpReplace($file1, '.txt', "|")
    WEnd

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

    $Form1 = GUICreate("Form1", 398, 342, 726, 184)
    GUISetBkColor(0x000000)
    $List1 = GUICtrlCreateList("", 8, 8, 160, 240)
    GUICtrlSetData(-1, $file2)
    $List2 = GUICtrlCreateList("", 229, 8, 160, 240)
    $hlist2 = GUICtrlGetHandle($List2)
    $Button1 = GUICtrlCreateButton("+", 184, 104, 30, 25, 0)
    $Button2 = GUICtrlCreateButton("-", 184, 144, 30, 25, 0)
    $Input1 = GUICtrlCreateInput("Preis Einkauf in €", 229, 250, 160, 25)
    $Button3 = GUICtrlCreateButton("Neuer Artikel", 8, 250, 160, 25, 0)
    $Button4 = GUICtrlCreateButton("Druck Einkauf", 148, 304, 100, 25, 0)
    $Pic1 = GUICtrlCreatePic("BG.jpg", 0, 0, 396, 340, BitOR($SS_NOTIFY, $WS_GROUP, $WS_CLIPSIBLINGS, $WS_DISABLED))
    GUISetState(@SW_SHOW)

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    FileDelete("test.txt")
    Exit
    Case $Button1
    _1()
    Case $Button2
    _2()
    Case $Button4
    _3()
    EndSwitch
    WEnd

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

    Func _1()
    GUICtrlSetData($List2, GUICtrlRead($List1))
    EndFunc ;==>_1

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

    Func _2()
    GUICtrlSetData($List2, "")
    EndFunc ;==>_2

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

    Func _3()
    Local $price
    Local $lcount = _GUICtrlListBox_GetCount($hlist2)
    For $i = 1 To $lcount
    Local $open = FileOpen(@ScriptDir & "\Neuer Ordner\" & _GUICtrlListBox_GetText($hlist2, $i - 1) & ".txt", 0)
    Local $read = FileReadLine($open, 2)
    $price += $read
    FileClose($open)
    Next
    GUICtrlSetData($Input1, $price)
    $preis = ""
    EndFunc ;==>_3

    [/autoit]


    So oder?

    Edit \ Funktioniert jetzt natürlich nur wenn eine Zahl in Zeile2 der .txt Datei steht.
    Sollte dort 2,50€ oder sowas stehen muss man eben noch aufs richtige Format umwandlen.

  • Ok damit lässt sich nicht rechnen. Mit Stringreplace kommen wir zum Ziel:

    Spoiler anzeigen
    [autoit]


    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <ListBoxConstants.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #include <GUIListBox.au3>
    #NoTrayIcon

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

    $search = FileFindFirstFile(@ScriptDir & "\Neuer Ordner" & "\*.*")

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

    While 1
    $file = FileFindNextFile($search)
    If @error Then ExitLoop
    $F1 = FileOpen("test.txt", 1)
    FileWrite($F1, $file)
    FileClose($F1)
    $file1 = FileRead("test.txt")
    $file2 = StringRegExpReplace($file1, '.txt', "|")
    WEnd

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

    $Form1 = GUICreate("Form1", 398, 342, 726, 184)
    GUISetBkColor(0x000000)
    $List1 = GUICtrlCreateList("", 8, 8, 160, 240)
    GUICtrlSetData(-1, $file2)
    $List2 = GUICtrlCreateList("", 229, 8, 160, 240)
    $hlist2 = GUICtrlGetHandle($List2)
    $Button1 = GUICtrlCreateButton("+", 184, 104, 30, 25, 0)
    $Button2 = GUICtrlCreateButton("-", 184, 144, 30, 25, 0)
    $Input1 = GUICtrlCreateInput("Preis Einkauf in €", 229, 250, 160, 25)
    $Button3 = GUICtrlCreateButton("Neuer Artikel", 8, 250, 160, 25, 0)
    $Button4 = GUICtrlCreateButton("Druck Einkauf", 148, 304, 100, 25, 0)
    $Pic1 = GUICtrlCreatePic("BG.jpg", 0, 0, 396, 340, BitOR($SS_NOTIFY, $WS_GROUP, $WS_CLIPSIBLINGS, $WS_DISABLED))
    GUISetState(@SW_SHOW)

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    FileDelete("test.txt")
    Exit
    Case $Button1
    _1()
    Case $Button2
    _2()
    Case $Button4
    _3()
    EndSwitch
    WEnd

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

    Func _1()
    GUICtrlSetData($List2, GUICtrlRead($List1))
    EndFunc ;==>_1

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

    Func _2()
    GUICtrlSetData($List2, "")
    EndFunc ;==>_2

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

    Func _3()
    Local $price
    Local $lcount = _GUICtrlListBox_GetCount($hlist2)
    For $i = 1 To $lcount
    Local $open = FileOpen(@ScriptDir & "\Neuer Ordner\" & _GUICtrlListBox_GetText($hlist2, $i - 1) & ".txt", 0)
    Local $read = FileReadLine($open, 2)

    $price += StringReplace($read, ",", ".")
    FileClose($open)
    Next
    GUICtrlSetData($Input1, $price)
    $price = ""
    EndFunc ;==>_3

    [/autoit]

    Einmal editiert, zuletzt von nuts (31. Juli 2009 um 16:17)