Bestimmte zeile aus Listview Exportieren...

  • Hallo,

    habe eine Gui mit einer mit 2 Listview..


    Ich exportiere die zweite Listview mit dieser funktion:

    Spoiler anzeigen
    [autoit]

    Func _export()

    [/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, ','))
    EndFunc

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

    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)
    Opt("MustDeclareVars", 1)
    Opt("MustDeclareVars", 1)
    Opt("MustDeclareVars", 1)
    Opt("MustDeclareVars", 1)
    Global $countc, $countm, $counts, $Labelhp, $lv3countm

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

    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]


    Und jetzt zu meinem Problem:

    Ich möchte nur die Exportieren wo Type Fixed ist.
    weiss aber nicht wie?

    Und beim Export würde ich gerne die Labels von der lisview mit exportieren Wie mache ich das :
    also dieses:Hostname,LW,Type....


    Kann mir da jemand helfen??


    Danke
    SubZero

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

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

    3 Mal editiert, zuletzt von subzero007 (9. April 2010 um 21:25)

  • ich habe es nicht so recht verstanden ?
    kannst du es mir bitte nochmal erklären?

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

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

  • und wo muss ich diese abfrage machen ?

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

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

  • du willst doch in der for...next schleife alles in eine textdatei eintragen?
    dann gugt mein befehl, ob fixed in der gerade zu schreibenden zeile ist, und wenn es dann ist, dann wird @extended auf 1 gesetzt (1mal ausgetauscht)
    anhand dessen startest du jetzt den befehl, was passieren bzw nicht passieren soll, wenn da fixed drinstand
    verständlich genug?

  • ok verstehe....

    und wo muss ich in der func _GUICtrlListView_Export "> siehe post 1" was ändern?? Das versteh ich nocht nicht?

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

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

  • wie das reicht auch eins?
    was hat das mit dem problem zu tun?

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

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

  • Nichts aber warum sollte diese Anweisung 4 mal aufgerufen werden?

    Woran scheiterts denn? In deinem Loop durch die Listvieitems musst du ein bestimmtest Subitem (2) mit dem String "fixed" vergleichen.

    [autoit]

    if _GUICtrlListView_GetItemText($lisviewhandle, $i, 2) = "fixed" then

    [/autoit]
  • mhhh...
    soweit so gut verstehe aber wo in welcher loop in meiner Funktion muss ich das tun?

    [autoit]

    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)
    Opt("MustDeclareVars", 1)

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

    Global $countc, $countm, $counts, $Labelhp, $lv3countm

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

    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]

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

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

  • die funktion habe ich von bugfix ..
    er wird sich wohl dabei was gedacht haben oder?;-)
    Über eine altetrnative würde ich mich auch freuen ;)

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

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

  • Na mit Sicherheit, nur ob es auf dein Problem passt?
    Vielleicht so:

    Spoiler anzeigen
    [autoit]


    #AutoIt3Wrapper_au3check_parameters=-d -w 1 -w 2 -w 3 -w 4 -w 5 -w 6
    #include <GuiConstantsEx.au3>
    #include <GuiListView.au3>
    #include <array.au3>
    ;Opt('MustDeclareVars', 1)

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

    $Debug_LV = False ; Check ClassName being passed to ListView functions, set to True and use a handle to another control to see it work

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

    _Main()

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

    Func _Main()
    Local $hListView

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

    GUICreate("ListView Get Item Text Array", 400, 300)

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

    $hListView = GUICtrlCreateListView("col1|col2|col3", 2, 2, 394, 268)
    GUICtrlCreateListViewItem("line1|data|more1", $hListView)
    GUICtrlCreateListViewItem("line2|data|more2", $hListView)
    GUICtrlCreateListViewItem("line3|data3|more3", $hListView)
    GUICtrlCreateListViewItem("line4|data|more4", $hListView)
    GUICtrlCreateListViewItem("line5|data5|more5", $hListView)
    GUICtrlCreateListViewItem("line6|data|more5", $hListView)
    GUISetState()

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

    local $array=_ExportListview($hlistview, 1, "data")
    _ArrayDisplay($array)

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

    ; Loop until user exits
    Do
    Until GUIGetMsg() = $GUI_EVENT_CLOSE
    GUIDelete()
    EndFunc ;==>_Main

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

    Func _ExportListview($hlistview, $subitem, $search)
    local $count = _GUICtrlListView_GetItemCount($hlistview)
    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
    Redim $aret[$counter][$colcount]
    Return $aret
    endfunc

    [/autoit]


    Kannst dir die Änderungen in den Arrays durch _Arraydisplay (auskommentiert) ja anschauen.

  • Danke,
    noch zwei kleinigkeiten...
    wie kriege ich es ',' getrennt?
    Und alles in eine TXT datei...schreibe?

    Hast du noch einen vorschlag wie ich meine labels in die txt übernehmen kann?
    "Hostname,LW,Type...."

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

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

  • was mache ich falsch?
    er schreibt auch keinen c:\test.txt??

    [autoit]

    #include <GuiConstantsEx.au3>
    #include <GuiListView.au3>
    #include <array.au3>
    ;Opt('MustDeclareVars', 1)

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

    $Debug_LV = False ; Check ClassName being passed to ListView functions, set to True and use a handle to another control to see it work

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

    _Main()

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

    Func _Main()
    Local $hListView

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

    GUICreate("ListView Get Item Text Array", 400, 300)

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

    $hListView = GUICtrlCreateListView("col1|col2|col3", 2, 2, 394, 268)
    GUICtrlCreateListViewItem("line1|data|more1", $hListView)
    GUICtrlCreateListViewItem("line2|data|more2", $hListView)
    GUICtrlCreateListViewItem("line3|data3|more3", $hListView)
    GUICtrlCreateListViewItem("line4|data|more4", $hListView)
    GUICtrlCreateListViewItem("line5|data5|more5", $hListView)
    GUICtrlCreateListViewItem("line6|data|more5", $hListView)
    GUISetState()

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

    global $array=_ExportListview($hlistview, 1, "data")
    _ArrayDisplay($array)

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

    ; Loop until user exits
    Do
    Until GUIGetMsg() = $GUI_EVENT_CLOSE
    GUIDelete()
    EndFunc ;==>_Main

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

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

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

    local $count = _GUICtrlListView_GetItemCount($hlistview)
    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)
    _FileWriteFromArray2D('c:\test.txt', $ARRAY, $DELIM=',')
    $counter +=1
    EndIf
    next
    Redim $aret[$counter][$colcount]

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

    Return $aret

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

    endfunc

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

    Func _FileWriteFromArray2D($FILEPATH, $ARRAY, $iROWstart=0, $iROWend=0, $iCOLstart=0, $iCOLend=0, $DELIM=',')

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

    If Not IsArray($ARRAY) Then
    SetError(1)
    Return 0
    EndIf
    Local $Ubound = UBound($ARRAY)
    If $iROWend = 0 Then $iROWend = $Ubound-1
    Local $fh = FileOpen($FILEPATH, 2)
    If $fh = -1 Then
    SetError(2)
    Return 0
    EndIf
    Select
    Case $iROWstart < 0 Or $iROWstart > $Ubound-1
    $iROWstart = 0
    ContinueCase
    Case $iROWend < 0 Or $iROWend > $Ubound-1
    $iROWend = $Ubound-1
    ContinueCase
    Case $iROWstart > $iROWend
    $tmp = $iROWstart
    $iROWstart = $iROWend
    $iROWend = $tmp
    EndSelect
    Local $Ubound2nd = UBound($ARRAY, 2)
    If @error = 2 Then
    For $i = $iROWstart To $iROWend
    FileWriteLine($fh, $ARRAY[$i])
    Next
    Else
    If $iCOLend = 0 Then $iCOLend = $Ubound2nd-1
    Select
    Case $iCOLstart < 0 Or $iCOLstart > $Ubound2nd-1
    $iCOLstart = 0
    ContinueCase
    Case $iCOLend < 0 Or $iCOLend > $Ubound2nd-1
    $iCOLend = $Ubound2nd-1
    ContinueCase
    Case $iCOLstart > $iCOLend
    $tmp = $iCOLstart
    $iCOLstart = $iCOLend
    $iCOLend = $tmp
    EndSelect
    For $i = $iROWstart To $iROWend
    $tmp = ''
    For $k = $iCOLstart To $iCOLend
    If $k < $iCOLend Then
    $tmp &= $ARRAY[$i][$k] & $DELIM
    Else
    $tmp &= $ARRAY[$i][$k]
    EndIf
    Next
    FileWriteLine($fh, $tmp)
    Next
    EndIf
    FileClose($fh)
    Return -1
    EndFunc

    [/autoit]


    kriege folgenden fehler :

    [autoit]

    c:\01.au3(49,44) : WARNING: $ARRAY: possibly used before declaration.
    _FileWriteFromArray2D('c:\test.txt', $ARRAY,
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
    c:\01.au3(49,56) : WARNING: $iROWstart: possibly used before declaration.
    _FileWriteFromArray2D('c:\test.txt', $ARRAY, $iROWstart=
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
    c:\01.au3(49,68) : WARNING: $iROWend: possibly used before declaration.
    _FileWriteFromArray2D('c:\test.txt', $ARRAY, $iROWstart=0, $iROWend=
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
    c:\01.au3(49,82) : WARNING: $iCOLstart: possibly used before declaration.
    _FileWriteFromArray2D('c:\test.txt', $ARRAY, $iROWstart=0, $iROWend=0, $iCOLstart=
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
    c:\01.au3(49,94) : WARNING: $iCOLend: possibly used before declaration.
    _FileWriteFromArray2D('c:\test.txt', $ARRAY, $iROWstart=0, $iROWend=0, $iCOLstart=0, $iCOLend=
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
    c:\01.au3(49,104) : WARNING: $DELIM: possibly used before declaration.
    _FileWriteFromArray2D('c:\test.txt', $ARRAY, $iROWstart=0, $iROWend=0, $iCOLstart=0, $iCOLend=0, $DELIM=
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
    c:\01.au3(24,54) : WARNING: $ARRAY: declared global in function only. Prefer top of file.
    global $array=_ExportListview($hlistview, 1, "data")
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
    c:\01.au3 - 0 error(s), 7 warning(s)
    ->15:11:39 AU3Check ended.rc:1
    >Running:(3.3.0.0):C:\Program Files\AutoIt3\autoit3.exe "c:\01.au3"
    c:\01.au3 (49) : ==> Variable used without being declared.:
    _FileWriteFromArray2D('c:\test.txt', $ARRAY, $iROWstart=0, $iROWend=0, $iCOLstart=0, $iCOLend=0, $DELIM=',')
    _FileWriteFromArray2D('c:\test.txt', $ARRAY, ^ ERROR
    ->15:11:40 AutoIT3.exe ended.rc:1
    +>15:11:41 AutoIt3Wrapper Finished
    >Exit code: 1 Time: 2.361

    [/autoit]

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

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

  • hallo subtero007,

    mach es so:

    Spoiler anzeigen
    [autoit]

    #include <GuiConstantsEx.au3>
    #include <GuiListView.au3>
    #include <array.au3>
    ;Opt('MustDeclareVars', 1)

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

    $Debug_LV = False ; Check ClassName being passed to ListView functions, set to True and use a handle to another control to see it work

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

    _Main()

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

    Func _Main()
    Local $hListView

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

    GUICreate("ListView Get Item Text Array", 400, 300)

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

    $hListView = GUICtrlCreateListView("col1|col2|col3", 2, 2, 394, 268)
    GUICtrlCreateListViewItem("line1|data|more1", $hListView)
    GUICtrlCreateListViewItem("line2|data|more2", $hListView)
    GUICtrlCreateListViewItem("line3|data3|more3", $hListView)
    GUICtrlCreateListViewItem("line4|data|more4", $hListView)
    GUICtrlCreateListViewItem("line5|data5|more5", $hListView)
    GUICtrlCreateListViewItem("line6|data|more5", $hListView)
    GUISetState()

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

    Global $array = _ExportListview($hListView, 1, "data")
    _ArrayDisplay($array)
    _FileWriteFromArray2D('c:\test.txt', $array)
    Do
    Until GUIGetMsg() = $GUI_EVENT_CLOSE
    GUIDelete()
    EndFunc ;==>_Main

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

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

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

    Local $count = _GUICtrlListView_GetItemCount($hListView)
    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
    ReDim $aret[$counter][$colcount]

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

    Return $aret

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

    EndFunc ;==>_ExportListview

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

    Func _FileWriteFromArray2D($FILEPATH, $array, $iROWstart = 0, $iROWend = 0, $iCOLstart = 0, $iCOLend = 0, $DELIM = ',')

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

    If Not IsArray($array) Then
    SetError(1)
    Return 0
    EndIf
    Local $Ubound = UBound($array)
    If $iROWend = 0 Then $iROWend = $Ubound - 1
    Local $fh = FileOpen($FILEPATH, 2)
    If $fh = -1 Then
    SetError(2)
    Return 0
    EndIf
    Select
    Case $iROWstart < 0 Or $iROWstart > $Ubound - 1
    $iROWstart = 0
    ContinueCase
    Case $iROWend < 0 Or $iROWend > $Ubound - 1
    $iROWend = $Ubound - 1
    ContinueCase
    Case $iROWstart > $iROWend
    $tmp = $iROWstart
    $iROWstart = $iROWend
    $iROWend = $tmp
    EndSelect
    Local $Ubound2nd = UBound($array, 2)
    If @error = 2 Then
    For $i = $iROWstart To $iROWend
    FileWriteLine($fh, $array[$i])
    Next
    Else
    If $iCOLend = 0 Then $iCOLend = $Ubound2nd - 1
    Select
    Case $iCOLstart < 0 Or $iCOLstart > $Ubound2nd - 1
    $iCOLstart = 0
    ContinueCase
    Case $iCOLend < 0 Or $iCOLend > $Ubound2nd - 1
    $iCOLend = $Ubound2nd - 1
    ContinueCase
    Case $iCOLstart > $iCOLend
    $tmp = $iCOLstart
    $iCOLstart = $iCOLend
    $iCOLend = $tmp
    EndSelect
    For $i = $iROWstart To $iROWend
    $tmp = ''
    For $k = $iCOLstart To $iCOLend
    If $k < $iCOLend Then
    $tmp &= $array[$i][$k] & $DELIM
    Else
    $tmp &= $array[$i][$k]
    EndIf
    Next
    FileWriteLine($fh, $tmp)
    Next
    EndIf
    FileClose($fh)
    Return -1
    EndFunc ;==>_FileWriteFromArray2D

    [/autoit]

    mfg (Auto)Bert

  • hey,

    führe das script jetzt so aus:

    Spoiler anzeigen
    [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] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

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

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

    Local $count = _GUICtrlListView_GetItemCount($hListView)
    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
    ReDim $aret[$counter][$colcount]

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

    Return $aret

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

    EndFunc ;==>_ExportListview

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

    Func _FileWriteFromArray2D($FILEPATH, $array, $iROWstart = 0, $iROWend = 0, $iCOLstart = 0, $iCOLend = 0, $DELIM = ',')

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

    If Not IsArray($array) Then
    SetError(1)
    Return 0
    EndIf
    Local $Ubound = UBound($array)
    If $iROWend = 0 Then $iROWend = $Ubound - 1
    Local $fh = FileOpen($FILEPATH, 2)
    If $fh = -1 Then
    SetError(2)
    Return 0
    EndIf
    Select
    Case $iROWstart < 0 Or $iROWstart > $Ubound - 1
    $iROWstart = 0
    ContinueCase
    Case $iROWend < 0 Or $iROWend > $Ubound - 1
    $iROWend = $Ubound - 1
    ContinueCase
    Case $iROWstart > $iROWend
    $tmp = $iROWstart
    $iROWstart = $iROWend
    $iROWend = $tmp
    EndSelect
    Local $Ubound2nd = UBound($array, 2)
    If @error = 2 Then
    For $i = $iROWstart To $iROWend
    FileWriteLine($fh, $array[$i])
    Next
    Else
    If $iCOLend = 0 Then $iCOLend = $Ubound2nd - 1
    Select
    Case $iCOLstart < 0 Or $iCOLstart > $Ubound2nd - 1
    $iCOLstart = 0
    ContinueCase
    Case $iCOLend < 0 Or $iCOLend > $Ubound2nd - 1
    $iCOLend = $Ubound2nd - 1
    ContinueCase
    Case $iCOLstart > $iCOLend
    $tmp = $iCOLstart
    $iCOLstart = $iCOLend
    $iCOLend = $tmp
    EndSelect
    For $i = $iROWstart To $iROWend
    $tmp = ''
    For $k = $iCOLstart To $iCOLend
    If $k < $iCOLend Then
    $tmp &= $array[$i][$k] & $DELIM
    Else
    $tmp &= $array[$i][$k]
    EndIf
    Next
    FileWriteLine($fh, $tmp)
    Next
    EndIf
    FileClose($fh)
    Return -1
    EndFunc ;=

    [/autoit]


    und kriege einen fehler:
    v05.au3 (36) : ==> Array variable subscript badly formatted.:
    ReDim $aret[$counter][$colcount]
    ReDim $aret[^ ERROR
    ->16:05:03 AutoIT3.exe ended.rc:1

    und die Gui schliesst sich??


    Einen Vorschlag!!

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

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