Inhalt einer listview in txt o. csv exportieren

  • Hallo

    eine kleinen tipp bräucht ich wie kann ich eine TXT bzw csv erstellen aus einem inhalt einer listview

    wäre für einen tipp oder beispiel sehr dankbar

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

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

  • Hallo,

    die Suche hat mir folgendes geliefert:

    Interner Link

    Schau dir das mal an. Sieht so ziemlich nach dem aus was du vor hast. :thumbup:

    Gruß
    DasBoenni

  • danke den beitrag habe ich gefunden aber leider arbeitet er mit datenbanken ich wollte nur in txt schreiben ........

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

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

    • Offizieller Beitrag

    Ich hab mal schnell eine Funktion erstellt zum wahlweisen Export als Array oder String mit Trennzeichen (Default ist gemäß Opt('GUIDataSeparatorChar'), im Allg. '|').
    Kannst ja die Stringausgabe direkt in eine Datei schreiben.

    [autoit]

    FileWrite('Pfad_Datei.csv', _GUICtrlListView_Export($hWnd, 1, ',')

    [/autoit][autoit]

    #include <GUIListView.au3>
    Func _GUICtrlListView_Export($hWnd, $exType=0, $Delim=Default) ; $exType=0 Array / $exType=1 String
    If Not IsHWnd($hWnd) Then $hWnd = GUICtrlGetHandle($hWnd)
    Local $row = _GUICtrlListView_GetItemCount($hWnd)
    If $exType Then
    If $Delim <> Default Then Local $oldDelim = Opt('GUIDataSeparatorChar', $Delim)
    Local $sOut = ''
    For $i = 0 To $row -1
    $sOut &= _GUICtrlListView_GetItemTextString($hWnd, $i) & @CRLF
    Next
    If $Delim <> Default Then Opt('GUIDataSeparatorChar', $oldDelim)
    Return $sOut
    EndIf
    Local $col = _GUICtrlListView_GetColumnCount($hWnd)
    Local $aOut[$row][$col]
    If $col = 1 Then
    ReDim $aOut[$row]
    For $i = 0 To UBound($aOut) -1
    $aOut[$i] = _GUICtrlListView_GetItemText($hWnd, $i)
    Next
    Return $aOut
    EndIf
    For $i = 0 To UBound($aOut) -1
    For $j = 0 To UBound($aOut, 2) -1
    $aOut[$i][$j] = _GUICtrlListView_GetItemText($hWnd, $i, $j)
    Next
    Next
    Return $aOut
    EndFunc

    [/autoit]
  • ich glaube es langsam zu verstehen ?"das glaube ich aber nur"

    wo gebe ich an welche listview er laden soll ?

    wie realiesiere ich das am besten mit einem FileOpenDialog?

    will ja nicht alles wissen will es nur verstehen....

    danke für deine hilfe

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

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

    • Offizieller Beitrag

    welche listview er laden soll


    $hWnd <== Da übergibst du das Handle oder die ID deines ListView

    mit einem FileOpenDialog


    Wozu willst du eine FileOpenDialog? - Du willst doch in eine Datei speichern. Also wohl eher FileSave Dialog:

    [autoit]

    $path = FileSaveDialog('ListView-Export speichern', @MyDocumentsDir, '*.csv')
    If @error Then Exit MsgBox(0, 'Fehler', 'Keine Zieldatei gewählt.')
    FileWrite($path, _GUICtrlListView_Export($hWnd, 1, ','))

    [/autoit]
  • Hey,

    kriege folgende fehler meldung habe bestimmt ein syntax fehler den ich nicht rauskriege?!


    09.au3 (70) : ==> Invalid file filter given.:
    $path = FileSaveDialog('ListView-Export speichern', @MyDocumentsDir, '*.csv')


    Case $hButton4
    $hWnd = ($hlistview)
    $path = FileSaveDialog('ListView-Export speichern', @MyDocumentsDir, '*.csv')
    If @error Then Exit MsgBox(0, 'Fehler', 'Keine Zieldatei gewählt.')
    FileWrite($path, _GUICtrlListView_Export($hWnd, 1, ','))

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

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

  • Hallo Subzero007,

    FileSaveDialog erwartet in diesem String, dass der Filter in () eingesclossen wird, davor ist ein Text für den Benutzer vorgesehen, aber keine Pflicht. Du kannst also so:

    [autoit]

    $path = FileSaveDialog('ListView-Export speichern', @MyDocumentsDir, '(*.csv)')

    [/autoit]

    oder so das Problem lösen:

    [autoit]

    $path = FileSaveDialog('ListView-Export speichern', @MyDocumentsDir, '(CSV-Format*.csv)')

    [/autoit]


    ist aber in der Hilfe gut erklärt,

    mfg (Auto)Bert