Listview > Hilfe

  • Hallo,

    Ist es möglich eine Datei auslesen zu lassen (iniread) und alles was in einer
    Section steht, als listviewitem ausgeben zu lassen?

    Spoiler anzeigen
    [autoit]


    #include <GUIConstantsEx.au3>
    #include <ListViewConstants.au3>
    #include <WindowsConstants.au3>

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

    #Region ### START Koda GUI section ### Form=
    $GUI = GUICreate("Test_Form", 623, 442, -1, -1)
    $List = GUICtrlCreateListView("Read_1 | Read_2 | Read_3", 8, 8, 610, 422)
    _Listadd()
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

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

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

    EndSwitch
    WEnd

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

    Func _Listadd()
    $read_1 = IniRead("test.txt","Read_1","-","")
    $read_2 = IniRead("test.txt","Read_2","-","")
    $read_3 = IniRead("test.txt","Read_3","-","")
    $add = GUICtrlCreateListViewItem
    EndFunc

    [/autoit]

    Würde mich um paar Antworten oder Hilfe freuen, Lg bärchen

    :):):):)

    Eine Antwort :D

    • Offizieller Beitrag

    Hallo,

    hier mal ein Beispiel wie man es machen kann!

    Spoiler anzeigen
  • Ist mir bewusst wie man es macht xD


    Das ist meine Funktion fähige Lösung xD
    die aber noch leicht ein fehler hat :*D

    Edit bernd670: Code neu formatiert

    :):):):)

    Eine Antwort :D

  • Einmal gebaut, sehr oft genutzt :D

    Liest User aus einer ini aus und sortiert diese vorm Einfügen.

    [ini]
    user=userid

    [autoit]

    Func filllist()
    Local $err = IniReadSection($ini, "users")
    Local $users[$err[0][0] + 1]

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

    $users[0] = $err[0][0]

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

    For $i = 1 To $err[0][0]
    $users[$i] = $err[$i][0] & " / " & $err[$i][1]
    Next

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

    _ArraySort($users)

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

    For $i = 1 To $users[0]
    GUICtrlSetData($adminlist, $users[$i], "---")
    Next
    EndFunc ;==>filllist

    [/autoit]

    Simon nörgelt, Simon nervt - aber Simon verbessert die Welt. Glaubt er.

  • Wie wäre es mit:

    1. Deinem vernüftig formatierten (nicht wie in Post #6) bisherigen Beispiel-Quellcode
    2. Einer angehängten Beispiel-INI damit man das Programm testen kann und den Fehler reproduzieren kann
    3. eine Fehlerbeschreibung wo das/Dein Problem mit dem vorliegenden Code liegt

    Dann findet sich auch bestimmt jemand, der Dir eine Lösung zeigt. Denn Deine letzten beiden Post's bringen hier auch niemanden weiter... ^^

    Zur Nutzung dieses Forum's, ist ein Übersetzer für folgende Begriffe unerlässlich:

    "On-Bort, weier, verscheiden, schädliges, Butten steyling, näckstet, Parr, Porblem, scripe, Kompletenz, harken, manuel zu extramieren, geckukt, würglich, excell, acces oder Compilevorgeng"

    • Offizieller Beitrag

    Wirklich Hilfe möchte @baerchen scheinbar nicht, sonst würde ja mehr kommen als

    Ist mir bewusst wie man es macht xD

    und

    Bringt mir auch nicht viel xDD

    obwohl er ja Hilfe brauche könnte

    Das ist meine Funktion fähige Lösung xDdie aber noch leicht ein fehler hat :*D


    Ich werde mal abwarten was noch so kommt!

    PS: Ich habe den Code in Post #6 mal neu formatiert!

  • bin mir nicht mal sicher, ob er wirklich "AutoIt" meint, mit dem was er da programmiert:

    [autoit]

    $add($read_1 & "|" & $read_2 & "|" & $read_3, $List)

    [/autoit]

    Was isn "$add" für ne Funktion?

    Simon nörgelt, Simon nervt - aber Simon verbessert die Welt. Glaubt er.

  • AutoIT wäre nicht AutoIT wenn es nicht Funktionieren sollte:

    [autoit]


    $add = GUICtrlCreateListViewItem
    $add($read_1 & "|" & $read_2 & "|" & $read_3, $List)

    [/autoit]

    Da ist der zusammen hang $add :)

    übersetzt

    [autoit]


    GUICtrlCreateListViewItem($read_1 & "|" & $read_2 & "|" & $read_3, $List)

    [/autoit]

    :):):):)

    Eine Antwort :D

    Einmal editiert, zuletzt von baerchen (13. Mai 2015 um 11:34)

  • ja, schon klar.. trotzdem funktioniert meine funktion bestens, auch wenn sie ihm nicht weiter hilft - was im übrigen eine sehr nette antwort auf "support" ist ;)

    Simon nörgelt, Simon nervt - aber Simon verbessert die Welt. Glaubt er.

  • so z.B. ?

    [Blockierte Grafik: http://up.picr.de/21896140gz.jpg]


    [autoit]


    #include <GUIConstantsEx.au3>
    #include <ListViewConstants.au3>
    #include <WindowsConstants.au3>
    #include <array.au3>
    #include <GuiListView.au3>

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

    $sFile = "test.txt"
    $size = 0

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

    $GUI = GUICreate("Test_Form", 623, 442, -1, -1)
    $List = GUICtrlCreateListView("Read_1 | Read_2 | Read_3 | Read_4", 8, 8, 610, 422)
    _GUICtrlListView_SetColumnWidth($List,0,150)
    _GUICtrlListView_SetColumnWidth($List,1,150)
    _GUICtrlListView_SetColumnWidth($List,2,150)
    _GUICtrlListView_SetColumnWidth($List,3,150)
    _ReadSections("Read_1|Read_2|Read_3|Read_4")

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

    GUISetState(@SW_SHOW)

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

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

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

    EndSwitch
    WEnd

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

    func _ReadSections($sSectionNames)
    $aSectionNames = StringSplit($sSectionNames,"|")
    $X = _getArraySize($sSectionNames)
    $Y = ubound($aSectionNames)
    dim $aArray[$x][$y]
    for $i = 1 to ubound($aSectionNames) - 1
    $aSectionText = IniReadSection ($sFile,$aSectionNames[$i])
    for $j = 1 to ubound($aSectionText) - 1
    $aArray[$j-1][$i-1] = $aSectionText[$j][0] & "=" & $aSectionText[$j][1]
    Next
    Next
    _GUICtrlListView_AddArray($List,$aArray)
    EndFunc

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

    func _getArraySize($sSectionNames)
    $aSectionNames = StringSplit($sSectionNames,"|")
    for $i = 1 to ubound($aSectionNames) - 1
    $aSectionText = IniReadSection ($sFile,$aSectionNames[$i])
    if $size < ubound($aSectionText)-1 then $size = ubound($aSectionText)-1
    Next
    return $size
    EndFunc

    [/autoit]

    Beispiel Ini:

    Spoiler anzeigen


    [READ_1]
    Name=Max Mustermann
    Geburtstag=08.01.1966
    Wohnort=Berlin


    [READ_2]
    Hobby1=Fussball
    Hobby2=Handball
    Hobby3=Tischtennis
    Hobby3=Basketball


    [READ_3]
    Schule=Musterschule
    Beruf=Lokführer
    Arbeitgeber=BAHN


    [READ_4]
    CPU=Intel
    RAM=4GB
    HDD=500GB
    GRAFIK=NVIDIA
    LW=DVD
    Monitor=19"
    TEST=1234

  • Aalso ich seh da jetz nicht wirklich einen Unterschied zu dem, was ich dir gepostet hab..

    Aber ok, nächstes mal bin ich schlauer und äußere mich nicht ;)

    Simon nörgelt, Simon nervt - aber Simon verbessert die Welt. Glaubt er.

  • AutoIT wäre nicht AutoIT wenn es nicht Funktionieren sollte:

    [autoit]

    $add = GUICtrlCreateListViewItem$add($read_1 & "|" & $read_2 & "|" & $read_3, $List)

    [/autoit]

    Da ist der zusammen hang $add :)

    übersetzt

    [autoit]

    GUICtrlCreateListViewItem($read_1 & "|" & $read_2 & "|" & $read_3, $List)

    [/autoit]

    Das geht 8| ?

    $MSG = MsgBox
    $MSG(0, "", 55)

    funktioniert bei mir nicht. Mich würde die Version interessieren ..

    Grüße Yaerox

    Grüne Hölle

    • Offizieller Beitrag

    Das geht ?

    $MSG = MsgBox
    $MSG(0, "", 55)

    funktioniert bei mir nicht. Mich würde die Version interessieren ..

    Mit der aktuellen Version geht das auf jeden Fall!
    Welche Version hast du denn?

    Ich finde nur es macht das lesen von Programmen nicht unbedingt einfacher. Vor allem wenn man Funktionen wie GUICtrlCreateListViewItem der Variable $add zuweist, man sollte dann wenigstens Namen nehmen aus denen man noch die Funktion herleiten kann.