Bestimmte zeile aus Listview Exportieren...

  • Fehler können auftreten wenn: $hlistview gar kein Handle von einem Listview ist (Listviewfunktionen auf Fehler prüfen), kein Treffer gefunden wird (das ist dein Fehler), kein Item im Listview ist.

    Spoiler anzeigen
    [autoit]


    Func _ExportListview($hListView, $subitem, $search)

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

    Local $count = _GUICtrlListView_GetItemCount($hListView)
    if @error then Return SetError(1,0,1)
    if $count=0 then Return SetError(1,0,2)
    Local $colcount = _GUICtrlListView_GetColumnCount($hListView)
    Local $aret[$count][$colcount] ;2D Rückgabearray
    Local $atext, $counter = 0

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

    For $i = 0 To $count - 1 ;loop durch die Items
    $atext = _GUICtrlListView_GetItemTextArray($hListView, $i)
    ;_arraydisplay($atext)
    If $atext[$subitem + 1] = $search Then ; bei gefunden Searchstring im bezeichneten Subitem
    For $x = 1 To $atext[0] ;loop durchs Array der Subitems
    $aret[$counter][$x - 1] = $atext[$x] ; "D Rückgabearray befüllen
    Next
    ;_arraydisplay($aret)
    $counter += 1
    EndIf
    Next
    if $counter = 0 then Return SetError(1,0,3)
    ReDim $aret[$counter][$colcount]

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

    Return $aret

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

    EndFunc ;==>_ExportListview

    [/autoit]


    Mit Errormanagment!

  • danke jetzt stürtzt er nicht ab aber was ist daran falsch?

    er schreibt die datei nicht?

    [autoit]

    func _exportfixed()

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

    $hWnd = $Liste
    $path = FileSaveDialog('ListView-Export speichern', @ScriptDir, "CSV Datei (*.csv)")
    If @error Then Return MsgBox(0, 'Fehler', 'Keine Zieldatei gewählt.')
    ;FileWrite($path & ".csv", _GUICtrlListView_Export($hWnd, 1, ','))

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

    Global $array = _ExportListview($liste, 1, "Fixed")
    ;_ArrayDisplay($array)

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

    _FileWriteFromArray2D($path, $array)

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

    EndFunc

    [/autoit]

    lg SubZero ;)
    ==========================================================================

    "Der Computer ist die logische Weiterentwicklung des Menschen: Intelligenz ohne Moral."

  • Also subzero, du solltest versuchen die Programmabläufe zu verstehen und erst dann die Funkionen reinkopieren.
    Das ist nicht böse gemeint, aber sonst wird das nichts!

    Meine Funktion bricht mit einem Fehler ab (Rückgabe: 1, 2 oder 3 - schaus dir in einer msgbox mal an) und gibt somit kein Array zurück - anschließend steigt die Funktion von Bugfix auch aus (die hat nämlich auch ein Errorhandling) und schreibt kein Testfile!

  • die export funktion von Bugfix funktioniert.

    aber leider kriege ich das mit den Fixed nicht hin??

    was mache ich falsch oder was läuft falsch?

    lg SubZero ;)
    ==========================================================================

    "Der Computer ist die logische Weiterentwicklung des Menschen: Intelligenz ohne Moral."

  • [autoit]

    func _exportfixed()

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

    $hWnd = $Liste
    $path = FileSaveDialog('ListView-Export speichern', @ScriptDir, "CSV Datei (*.csv)")
    If @error Then Return MsgBox(0, 'Fehler', 'Keine Zieldatei gewählt.')
    ;FileWrite($path & ".csv", _GUICtrlListView_Export($hWnd, 1, ','))

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

    Global $array = _ExportListview($liste, 1, "Fixed")
    ;_ArrayDisplay($array)

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

    _FileWriteFromArray2D($path& ".csv", $array)

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

    EndFunc

    [/autoit]


    Der zweite Parameter von _ExportListview
    Laut Bild im Startpost müsste hier eine 2 rein.
    Dort musst du quasi eintragen in welcher Listviewspalte (der Subitemindex) gesucht werden soll.

    P.S. Das Beispiel von Autobert funktioniert auch .... was da bei deinem Skript alles passiert kann ich nicht sagen. :whistling:

  • danke danke

    habe es endlich gelöst und verstanden ...;-)

    lg SubZero ;)
    ==========================================================================

    "Der Computer ist die logische Weiterentwicklung des Menschen: Intelligenz ohne Moral."