• Hallo Leute,

    falls es wer gebrauchen kann...

    [autoit]


    #include-once
    #include <GuiListView.au3>

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

    Func _ListView2File($hWnd, $iFile, $iDir=@Scriptdir, $sDelim="|", $sDelimRe=@TAB)
    Local $iItem= _GUICtrlListView_GetItemCount($hWnd)
    If _GUICtrlListView_GetItemCount($hWnd) >0 Then
    $file = FileOpen($iDir & "\" & $iFile, 2)
    If @error then SetError (-2)
    For $i = 0 To $iItem
    $sItem = _GUICtrlListView_GetItemTextString($hWnd, $i) & @CRLF
    FileWrite($file, StringReplace($sItem, $sDelim, $sDelimRe))
    Next
    Return 0
    Else
    SetError (-1)
    ConsoleWrite ("Error! No Item or Data found in " & $hwnd)
    EndIf
    FileClose($file)
    EndFunc ;==>write

    [/autoit]

    ^^
    Achja... Kommentare erwünscht...

    Spoiler anzeigen
    Zitat

    Ich weiß wo dein Haus wohnt... 8o

    4 Mal editiert, zuletzt von stinger2k (1. Mai 2010 um 12:11)

  • Ich lief es in 3.8.1.1 und nichts geschah, kein Fehler überhaupt. Ich dachte, dass war toll. Wie auch immer wie bekommt man die Dateien?

    Code
    $file = FileOpen($iDir & "\" & $iFile, 2)

    Sehr neu und versuche, ein Skript zusammengestellt, wo Sie die Dateinamen aus einer Liste (Textdatei) bekommen und ShellExecute verwenden, um sie auszuführen,

  • Hallo meows,

    herzlich willkommen im Forum.

    [autoit]

    FileOpen

    [/autoit]

    öffnet je nach Parameter die Datei zum lesen bzw. schreiben. Bei dem von dir benutzeten Parameter wird die Datei zum schreibem geöffnet und evtl. bestehender Inhalt gelöscht. Du solltest dir die Hilfe herunterladen.

    stinger2k Skriptauszug ist zum einbauen in ein Skript wenn du eine Listvuew in eine Textdatei speichern willst,

    Edit: du solltest in Zukunft ein eigenes Thema eröffnen und nicht einfach in einem indem eine Funktion benutzt wird welche du nicht verstehts. Am besten dann auch mit deinem kompletten SKript,

    mfg autoBert

  • oh bert,
    das hab ich vor nem jahr gebraucht und vergeblich gesucht :/
    sowas ist sehr nützlich, nützlich wäre wenn du gleich dazu ne File2ListView machst ;)

  • Ich speichere und lade meine LV's auf andere Art:

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <GuiListView.au3>
    #include <File.au3>
    #include <Array.au3>

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

    Opt('MustDeclareVars', 1)

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

    Global $listview, $buttonSave, $buttonLoad, $msg

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

    GUICreate("listview items", 220, 550, 20, 40)
    GUISetBkColor(0x00E0FFFF) ; will change background color

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

    $listview = GUICtrlCreateListView("col1 |col2|col3 ", 10, 10, 200, 500)
    $buttonSave = GUICtrlCreateButton("&Speichern", 15, 520, 70, 20)
    $buttonLoad = GUICtrlCreateButton("&Laden", 115, 520, 70, 20)
    For $i = 1 To Random(10, 33, 1)
    GUICtrlCreateListViewItem("Eintrag" & $i & "|Spalte 2" & $i & "|Spalte " & $i & "3", $listview)
    Next
    GUISetState()

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

    While 1
    $msg = GUIGetMsg()
    Switch $msg
    Case $buttonSave
    _saveLV($listview, @ScriptDir & "\TestLV.dat")
    Case $buttonLoad
    _LoadLV($listview, @ScriptDir & "\TestLV.dat", True)
    Case $GUI_EVENT_CLOSE
    Exit
    EndSwitch
    WEnd
    Func _saveLV($idLV, $sFileName)
    #cs
    ;autor autoBert
    $idLV = Controlid der zu speichernden Listview
    $sFileName = Name der zu erstellenden Datei
    #ce
    Local $aItem, $hFileOut
    $hFileOut = FileOpen($sFileName, 2)
    For $j = 0 To _GUICtrlListView_GetItemCount($idLV) - 1
    $aItem = _GUICtrlListView_GetItemTextString($idLV, $j)
    FileWriteLine($hFileOut, $aItem)
    Next
    FileClose($hFileOut)
    EndFunc ;==>_saveLV

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

    Func _LoadLV($idLV, $sFileName, $bClear = False)
    #cs
    ;autor autoBert
    $idLV = Controlid der Listview welche die Items aufnehmen soll
    $sFileName = Name der Datei welche die LV-Items enthält
    $Clear = bestehende Items löschen True/False
    #ce
    Local $aItems
    If FileExists($sFileName) Then
    $aItems = ""
    _FileReadToArray($sFileName, $aItems)
    If IsArray($aItems) Then
    If $bClear Then _GUICtrlListView_DeleteAllItems($idLV) ;bereits betehende Utems löschem
    _ArrayDisplay($aItems, "Array-Inhalt")
    _GUICtrlListView_BeginUpdate($idLV)
    For $j = 1 To $aItems[0]
    GUICtrlCreateListViewItem($aItems[$j], $idLV)
    Next
    #cs Möglichkeit 2 ;bringt seltsamerweise Fehler in der UDF
    _ArrayDelete($aItems, 0)
    _GUICtrlListView_AddArray($idLV, $aItems)
    #ce
    _GUICtrlListView_EndUpdate($idLV)
    EndIf
    EndIf
    EndFunc ;==>_LoadLV

    [/autoit]