_ArrayToString

  • Hey,

    was mache ich hier falsch oder habe ich einen denkfehler??

    [autoit]

    _ArrayDisplay($ergebnis)

    $test = _ArrayToString($ergebnis, '|')

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

    GUICtrlCreateListViewItem($test, $Liste)

    [/autoit]

    _arraydisplay ist alles in Ordnung,
    daraus kriege ich bloss keine Listview einträge zu stande??

    Danke und Gruß
    SubZero

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

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

    Einmal editiert, zuletzt von subzero007 (2. Oktober 2009 um 21:21)

  • ja ist es auch ,glaube ich zu mindestens bei ini read soll es ja immer 2d sein ??

    [autoit]


    $inifiles = _FileListToArray($inipath, "*.ini", 1)
    $count = 0
    For $i = 1 To UBound($inifiles) - 1
    $iniread = IniReadSection($inipath & "\" & $inifiles[$i], "ADMINGROUP_MEMBER")
    For $j = 0 To UBound($iniread) - 1
    Switch $iniread[$j][1]
    Case StringInStr($iniread[$j][1], "Administrator") <> 0
    ContinueLoop
    Case StringInStr($iniread[$j][1], "xxx") <> 0
    ContinueLoop
    Case StringInStr($iniread[$j][1], "xxx") <> 0
    ContinueLoop
    Case StringInStr($iniread[$j][1], "xxx") <> 0
    ContinueLoop
    Case StringInStr($iniread[$j][1], "xxx") <> 0
    ContinueLoop

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

    Case StringInStr($iniread[$j][1], "xxxx") <> 0
    ContinueLoop

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

    Case StringInStr($iniread[$j][1], "xxxx") <> 0
    ContinueLoop

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

    Case Else
    $ergebnis[$count][0] = StringTrimRight($inifiles[$i], 7); ==> Subscript used with non-Array variable.:
    $ergebnis[$count][1] = $iniread[$j][1]
    $count += 1
    ReDim $ergebnis[$count + 1][2]
    EndSwitch
    Next
    Next
    _ArrayDisplay($ergebnis)

    $test = _ArrayToString($ergebnis, '|')

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

    GUICtrlCreateListViewItem($test, $Liste)

    [/autoit]


    Eine idee?

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

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

  • ja tatsächlich es ist ein:
    3 - $avArray ist kein 1-dimensionales Array

    [autoit]

    $test = _ArrayToString($ergebnis, '|')
    if @error then MsgBox(0, '', @error)

    [/autoit]

    wie kann ich jetzt darauss listview einträge erstellen?

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

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

  • hey,
    Wollte eigentlich zwei spalten daraus machen?

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

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

  • Vielleicht so?

    [autoit]

    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <GUIListBox.au3>
    #include <WindowsConstants.au3>
    #include <Array.au3>

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

    Global $Array[10] = ["Deutschland", "Frankreich", "Ungarn", "England", "Spanien", "Polen", "Russland", "Türkei", "Marokko", "Italien"]
    Global $Array_Dimension_2[5][2]
    $Array_Dimension_2[0][0] = "Deutschland"
    $Array_Dimension_2[1][0] = "Frankreich"
    $Array_Dimension_2[2][0] = "Polen"
    $Array_Dimension_2[3][0] = "Italien"
    $Array_Dimension_2[4][0] = "Türkei"
    $Array_Dimension_2[0][1] = "Berlin"
    $Array_Dimension_2[1][1] = "Paris"
    $Array_Dimension_2[2][1] = "Warschau"
    $Array_Dimension_2[3][1] = "Rom"
    $Array_Dimension_2[4][1] = "Istanbul"

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

    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Form1", 492, 493, 192, 124)
    $List1 = GUICtrlCreateList("", 8, 8, 233, 422)
    $List2 = GUICtrlCreateList("", 248, 8, 233, 422)
    $Button1 = GUICtrlCreateButton("Start", 8, 440, 75, 25, $WS_GROUP)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

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

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

    EndSwitch
    WEnd

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

    Func _Insert_Into_List()
    _ArrayDisplay($Array, "Array Listview")
    If @error Then MsgBox(0, "Error", @error)

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

    $ArrayToString = _ArrayToString($Array, "|")
    If @error Then MsgBox(0, "Error", @error)

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

    GUICtrlSetData($List1, $ArrayToString)
    EndFunc

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

    Func _Insert_Into_List_2()
    For $i = 0 To UBound($Array_Dimension_2, 1) - 1 Step + 1
    For $f = 0 To UBound($Array_Dimension_2, 2) - 1 Step + 1
    GUICtrlSetData($List2, $Array_Dimension_2[$i][$f] & "|")
    Next
    Next
    EndFunc

    [/autoit]
  • Hey,
    damit habe ich es ja versucht leider ohne erfolg?

    [autoit]

    $test = _ArrayToString($ergebnis, '|')

    [/autoit]

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

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

  • Hi,

    ich denke $ergebnis ist das array für Deine ini Dateien aus vorherigem Thread:
    Listview mit 2 Spalten:

    [autoit]


    For $i = 0 To Ubound ($ergebnis) - 1
    ;computer in Zeile $i 1. Spalte
    _GUICtrlListView_AddItem($Liste, $ergebnis [$i] [0], $i)
    ;Member in Zeile $i Spalte 2
    _GUICtrlListView_AddSubItem($Liste, $i, $ergebnis[$i][1], 1, 1)
    Next

    [/autoit]


    oder

    [autoit]


    For $i = 0 To Ubound ($ergebnis) - 1
    GUICtrlCreateListViewItem ($ergebnis[$i][0] & "|" & $ergebnis [$i] [1], $Liste)
    Next

    [/autoit]

    ;-))
    Stefan

    3 Mal editiert, zuletzt von ojo (2. Oktober 2009 um 20:41)

  • Also ich glaub, hier meinen alle ein anderes Format. Ich habe es jetzt so verstanden:

    Spoiler anzeigen

    Du ließt aus der Ini aus:
    [Werte]
    Wert1=123
    Wert2=abcdf
    Wert3=w3t5eh
    Wert4=blablub

    Und die Listview soll dann so aussehen?
    {Schlüssel}|{Wert}
    Wert1|123
    Wert2|abcdf
    Wert3|w3t5eh
    Wert4|blablub


    Dann könntest du dir _GUICtrlListView_AddArray anschauen ;) Da musst du aber die erste Zeile löschen ... Hab die Funktion für mich mal erweitert:

    Spoiler anzeigen
    [autoit]

    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <GUIListView.au3>
    #include <WindowsConstants.au3>
    #include <Array.au3>

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

    Global $Array_Dimension_2[6][2]
    $Array_Dimension_2[0][0] = "5"
    $Array_Dimension_2[1][0] = "Deutschland"
    $Array_Dimension_2[2][0] = "Frankreich"
    $Array_Dimension_2[3][0] = "Polen"
    $Array_Dimension_2[4][0] = "Italien"
    $Array_Dimension_2[5][0] = "Türkei"
    $Array_Dimension_2[1][1] = "Berlin"
    $Array_Dimension_2[2][1] = "Paris"
    $Array_Dimension_2[3][1] = "Warschau"
    $Array_Dimension_2[4][1] = "Rom"
    $Array_Dimension_2[5][1] = "Istanbul"

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

    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Form1", 492, 493, 192, 124)
    $List1 = GUICtrlCreateListView("Eins|Zwei", 8, 8, 433, 422)
    $Button1 = GUICtrlCreateButton("Test1", 8, 440, 75, 25, $WS_GROUP)
    GUICtrlSetTip(-1, "Alle Items ab Index 1, alten Inhalt löschen")
    $Button2 = GUICtrlCreateButton("Test2", 100, 440, 75, 25, $WS_GROUP)
    GUICtrlSetTip(-1, "Komplettes Array hinzufügen, nichts löschen (wie _GUICtrlListView_AddArray)")
    $Button3 = GUICtrlCreateButton("Test3", 180, 440, 75, 25, $WS_GROUP)
    GUICtrlSetTip(-1, "Alle Items ab Index 1 hinzufügen, nichts löschen")
    $Button4 = GUICtrlCreateButton("Test3", 260, 440, 75, 25, $WS_GROUP)
    GUICtrlSetTip(-1, "Items von Index 1 bis 3 (also 1,2 und 3) hinzufügen, nichts löschen")
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Button1
    _GUICtrlListView_AddArrayEx($List1, $Array_Dimension_2,1,-1,1)
    Case $Button2
    _GUICtrlListView_AddArrayEx($List1, $Array_Dimension_2)
    Case $Button3
    _GUICtrlListView_AddArrayEx($List1, $Array_Dimension_2,1)
    Case $Button4
    _GUICtrlListView_AddArrayEx($List1, $Array_Dimension_2,1, 3)

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

    EndSwitch
    WEnd

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

    ; #FUNCTION# ====================================================================================================================
    ; Name...........: _GUICtrlListView_AddArrayEx
    ; Description ...: Adds items from an array to the control
    ; Syntax.........: _GUICtrlListView_AddArrayEx($hWnd, ByRef $aItems, $iStart=0, $iEnd=-1, $bDelete=False)
    ; Parameters ....: $hWnd - Handle to the control
    ; $aItems - Array with the following format:
    ; |[0][0] - Item 1 Text
    ; |[0][1] - Item 1 Subitem 1 text
    ; |[0][2] - Item 1 Subitem 2 text
    ; |[0][n] - Item 1 Subitem n text
    ; |[1][0] - Item 2 Text
    ; |[1][1] - Item 2 Subitem 1 text
    ; |[1][2] - Item 2 Subitem 2 text
    ; |[1][n] - Item 2 Subitem n text
    ; $iStart - Index of first item in array (default: 0)
    ; $iEnd - Index of last item in array (defualt: -1 for Ubound)
    ; $bDelete - Specifies wether to delete all previous items (default: False)
    ; Return values .:
    ; Author ........: Paul Campbell (PaulIA)
    ; Modified.......: Gary Frost (gafrost), Prog@ndy
    ; Remarks .......:
    ; Related .......:
    ; Link ..........;
    ; Example .......; Yes
    ; ===============================================================================================================================
    Func _GUICtrlListView_AddArrayEx($hWnd, ByRef $aItems, $iStart=0, $iEnd=-1, $bDelete=False)
    If $Debug_LV Then _GUICtrlListView_ValidateClassName($hWnd)
    Local $pBuffer, $tBuffer, $iItem, $pItem, $tItem, $tMemMap, $pMemory, $pText, $iI, $iJ, $iTemp
    Local $fUnicode = _GUICtrlListView_GetUnicodeFormat($hWnd)

    If UBound($aItems,0) <> 2 Then Return SetError(1,0,0)
    If $bDelete Then _GUICtrlListView_DeleteAllItems($hWnd)

    $iTemp = UBound($aItems)-1
    If $iEnd < 0 Or $iEnd > $iTemp Then $iEnd = $iTemp
    If $iStart < 0 Then
    $iStart = 0
    ElseIf $iStart > $iTemp Then
    $iStart = $iTemp
    EndIf
    If $iStart > $iEnd Then
    $iTemp = $iStart
    $iStart = $iEnd
    $iEnd = $iStart
    EndIf


    $tItem = DllStructCreate($tagLVITEM)
    $pItem = DllStructGetPtr($tItem)
    If $fUnicode Then
    $tBuffer = DllStructCreate("wchar Text[4096]")
    Else
    $tBuffer = DllStructCreate("char Text[4096]")
    EndIf
    $pBuffer = DllStructGetPtr($tBuffer)
    DllStructSetData($tItem, "Mask", $LVIF_TEXT)
    DllStructSetData($tItem, "Text", $pBuffer)
    DllStructSetData($tItem, "TextMax", 4096)
    _GUICtrlListView_BeginUpdate($hWnd)
    Local $iSubBound = UBound($aItems, 2) - 1
    If IsHWnd($hWnd) Then
    If _WinAPI_InProcess($hWnd, $_lv_ghLastWnd) Then
    For $iI = $iStart To $iEnd
    DllStructSetData($tItem, "Item", $iI)
    DllStructSetData($tItem, "SubItem", 0)
    DllStructSetData($tBuffer, "Text", $aItems[$iI][0])
    If $fUnicode Then
    _SendMessage($hWnd, $LVM_INSERTITEMW, 0, $pItem, 0, "wparam", "ptr")
    Else
    _SendMessage($hWnd, $LVM_INSERTITEMA, 0, $pItem, 0, "wparam", "ptr")
    EndIf
    For $iJ = 1 To $iSubBound
    DllStructSetData($tItem, "SubItem", $iJ)
    DllStructSetData($tBuffer, "Text", $aItems[$iI][$iJ])
    If $fUnicode Then
    _SendMessage($hWnd, $LVM_SETITEMW, 0, $pItem, 0, "wparam", "ptr")
    Else
    _SendMessage($hWnd, $LVM_SETITEMA, 0, $pItem, 0, "wparam", "ptr")
    EndIf
    Next
    Next
    Else
    $iItem = DllStructGetSize($tItem)
    $pMemory = _MemInit($hWnd, $iItem + 4096, $tMemMap)
    $pText = $pMemory + $iItem
    DllStructSetData($tItem, "Text", $pText)
    For $iI = $iStart To $iEnd
    DllStructSetData($tItem, "Item", $iI)
    DllStructSetData($tItem, "SubItem", 0)
    DllStructSetData($tBuffer, "Text", $aItems[$iI][0])
    _MemWrite($tMemMap, $pItem, $pMemory, $iItem)
    _MemWrite($tMemMap, $pBuffer, $pText, 4096)
    If $fUnicode Then
    _SendMessage($hWnd, $LVM_INSERTITEMW, 0, $pMemory, 0, "wparam", "ptr")
    Else
    _SendMessage($hWnd, $LVM_INSERTITEMA, 0, $pMemory, 0, "wparam", "ptr")
    EndIf
    For $iJ = 1 To $iSubBound
    DllStructSetData($tItem, "SubItem", $iJ)
    DllStructSetData($tBuffer, "Text", $aItems[$iI][$iJ])
    _MemWrite($tMemMap, $pItem, $pMemory, $iItem)
    _MemWrite($tMemMap, $pBuffer, $pText, 4096)
    If $fUnicode Then
    _SendMessage($hWnd, $LVM_SETITEMW, 0, $pMemory, 0, "wparam", "ptr")
    Else
    _SendMessage($hWnd, $LVM_SETITEMA, 0, $pMemory, 0, "wparam", "ptr")
    EndIf
    Next
    Next
    _MemFree($tMemMap)
    EndIf
    Else
    Local $sOldSep = Opt("GUIDataSeparatorChar", Chr(1)), $sTemp
    For $iI = $iStart To $iEnd
    $sTemp = $aItems[$iI][0]
    For $iJ = 1 To $iSubBound
    $sTemp &= Chr(1) & $aItems[$iI][$iJ]
    GUICtrlCreateListViewItem($sTemp,$hWnd)
    Next
    Next
    Opt("GUIDataSeparatorChar", $sOldSep)
    EndIf
    _GUICtrlListView_EndUpdate($hWnd)
    EndFunc ;==>_GUICtrlListView_AddArray

    [/autoit]