1. Dashboard
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Forenregeln
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Mitglieder
  3. MadCatz

Beiträge von MadCatz

  • 2 Diminsonale Array Einträge verschieben

    • MadCatz
    • 16. Dezember 2013 um 08:08

    Danke für eure Unterstützung :)

    Musste nochmal den Thread öffen:

    Generell funktioniert die ArrayMore.au3 und lässt sich auch auf mein Problem ansetzten. Dafür auf jeden Fall ein großes Dankeschön :)
    Allerdings löscht die ArrayMore den Index nur nach dem Index z.B Index = 5, aber nicht nach dem kriterium Index = 5 Value = "leer".

    Soll heißen, dass ich wie schon gesagt alle Index Einträge mit der Value = leer aus dem Array löschen möchte noch nicht ganz funktioniert, da lediglich nach dem Index gefiltert wird.
    Da ich aber im Endeffekt nicht weiß, an welchem Index "leer" steht klappte es noch nicht ganz.

    Mein Array sieht z.B so aus (Eintrag leer steht nicht starr auf einem Index):

    [Abc]

    0= abc
    1=leer
    2=ghi
    3=jkl
    4=leer


    Mach ich irgendwas falsch?


    [autoit]


    Func ListBox_Mitarbeiter_fuellen()


    $Array2 = IniReadSection($Pfad_Mitarbeiter&"\Mitarbeiter.ini", "Mitarbeiter")
    $LastIndex = $Array2[0][0]

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

    For $i = 1 To $LastIndex Step 1
    $Col = 5


    ;~ MsgBox(0,"",$Array2[$i][0]&" | "&$Array2[$i][1])

    If $Array2[$i][1] <> "leer" Then

    GUICtrlCreateListViewItem($Array2[$i][0] & "|" & $Array2[$i][1], $Mitarbeiter_List)
    _ArrayDisplay($Array2)
    _Array2DDelete($Array2,$Col)
    ;~ _Array2DDelete(ByRef $ARRAY, $iDEL)

    EndIf

    Next
    Return $LastIndex
    EndFunc

    [/autoit]
  • 2 Diminsonale Array Einträge verschieben

    • MadCatz
    • 13. Dezember 2013 um 15:13

    Entschuldige, aber die Antwort mit dem "Funktioniert so leider nicht" galt dem post darüber.


    Da kam mein post anscheinend etwas verspätet an

  • 2 Diminsonale Array Einträge verschieben

    • MadCatz
    • 13. Dezember 2013 um 14:39

    Danke für deine Hilfe =)

    Allerdings funktioniert die Umsetzung bei mir leider so nicht.

  • 2 Diminsonale Array Einträge verschieben

    • MadCatz
    • 13. Dezember 2013 um 11:57

    Hallo zusammen,

    ich habe ein kleines Problem mit meinem Array. Ich lege ein 2 Diminsionales Array an, dass in einer Ini Datei gespeichert wird und anschließend in einer ListView eingelesen wird.

    Zum Hintergrund: Man kann aus der ListView über eine Button einträge löschen, diese werden in der Ini Datei und dem Array dann durch den Eintrag "leer" überschreiben, damit das anschließende einlesen einfacher ist.
    Diese Einträge "leer" werden dann beim Einlesen in die LsitView übersprungen.

    Mein Problem besteht jetzt darin, dass wenn diese Einträge "ller" beim einlesen übersprungen werden, ich anschließend keine weiteren Einträge löschen kann, da der Index im Array bzw. in der Ini Datei nicht mehr mit den Angaben in der ListView über einstimmt.

    Ich müsste also eigentlich nur Wissen, wie ich es schaffe dass die Einträge im 2 Diminsionalen Array anschließend getauscht werden, also z.B so

    Vor dem Löschen:

    1=abc
    2=def
    3=ghi
    4=jkl

    Nach dem Löschen:

    1=abc
    2=def
    3=leer
    4=jkl

    Was sein sollte:

    1=abc
    2=def
    3=jkl

    Habe bereits gefunden, dass man mit _SwapArray arbeiten kann, allerdings nur im 1Deminsioanlenbereich.

    Kann mir da vielleicht einer weiterhelfen???


    Quellcode:

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

    Func ListBox_Mitarbeiter_fuellen()


    $Array2 = IniReadSection($Pfad_Mitarbeiter&"\Mitarbeiter.ini", "Mitarbeiter")
    $LastIndex = $Array2[0][0]

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

    For $i = 1 To $LastIndex Step 1


    MsgBox(0,"",$Array2[$i][0]&" | "&$Array2[$i][1])

    If $Array2[$i][1] <> "leer" Then

    GUICtrlCreateListViewItem($Array2[$i][0] & "|" & $Array2[$i][1], $Mitarbeiter_List)

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

    ; Hier soll der Wechsel stattfinden
    ;If $Array2[$i][1] = "leer" Then

    ; _ArraySwap($Array2[$i][1], $Array[$i][1+1])

    ;EndIf

    EndIf


    Next
    Return $LastIndex
    EndFunc

    [/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit]
  • List View bestimmten Eintrag ausblenden

    • MadCatz
    • 13. Dezember 2013 um 10:55

    Problem selbst behoben:


    [autoit]


    Func ListBox_Mitarbeiter_fuellen()


    $Array2 = IniReadSection($Pfad_Mitarbeiter&"\Mitarbeiter.ini", "Mitarbeiter")
    $LastIndex = $Array2[0][0]

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

    For $i = 1 To $LastIndex Step 1

    MsgBox(0,"",$Array2[$i][0]&" | "&$Array2[$i][1])


    if $Array2[$i][1] <> "leer" Then

    GUICtrlCreateListViewItem($Array2[$i][0] & "|" & $Array2[$i][1], $Mitarbeiter_List)

    EndIf

    Next
    Return $LastIndex
    EndFunc

    [/autoit]
  • List View bestimmten Eintrag ausblenden

    • MadCatz
    • 13. Dezember 2013 um 08:47

    Hallo zusammen,

    ich habe mal wieder ein Problem mit der ListView -.-

    Ich möchte in einer ListView, nach dem Einlesen eines 2 Deminsionalen Arrays, MEHRERE Einträge ausblenden will (alle mit der Selben Bezeichnung) und zwar alle Einträge mit der Bezeichnung leer.
    Leider funktioniert das nicht :(

    unten steht meine Funktion, mit der das Ganze abgehandelt werden soll.
    Ich denke das der Befehl

    _GUICtrlListView_DeleteItem($Mitarbeiter_List, "leer") nicht korrekt ist?!?

    Kann mir vielleicht einer weiterhelfen?
    Ich weis echt nicht mehr weiter, weil so wie es momentan ist, wird immer der erste eintrag der ListView entfernt, obwohl dort was ganz anderes drin steht


    Func ListBox_Mitarbeiter_fuellen()

    $Index1 = int (_GUICtrlListView_GetSelectedIndices($Mitarbeiter_List))
    $Array2 = IniReadSection($Pfad_Mitarbeiter&"\Mitarbeiter.ini", "Mitarbeiter")
    $LastIndex = $Array2[0][0]
    _GUICtrlListView_DeleteAllItems($Mitarbeiter_List)

    For $i = 1 To $LastIndex Step 1

    MsgBox(0,"",$Array2[$i][0]&" | "&$Array2[$i][1])

    ;~ if $Array2[$i][1] <> "" Then

    GUICtrlCreateListViewItem($Array2[$i][0], $Mitarbeiter_List)
    _GUICtrlListView_AddSubItem($Mitarbeiter_List,$i-1,$Array2[$i][1],1,1)

    if $Array2[$i][1] = "leer" Then
    ;~ $Delete = "leer"

    ;~ _GUICtrlListView_Hide
    _GUICtrlListView_DeleteItem($Mitarbeiter_List, "leer")
    ;~ IniWrite($Pfad_Mitarbeiter&"\Mitarbeiter.ini", "Mitarbeiter", $Index1, $Array2 [0][1])

    EndIf

    ;~ Else
    ;~ GUICtrlCreateListViewItem($Array2[$i][0], $Mitarbeiter_List)
    ;~ _GUICtrlListView_AddSubItem($Mitarbeiter_List,$i-1,$Array2[$i][1],1,1)

    ;~ EndIf

    Next
    Return $LastIndex
    EndFunc


    Zusatz Info: Die Ini Datei soll zuerst komplett in die ListView eingelsen werden und dann sollen erst die Eintrage "leer" entfernt werden.

  • Ini Datei in ListView einfügen??

    • MadCatz
    • 2. Dezember 2013 um 15:06

    Achso ich hab vergessen für Zukünftige die Lösung zu posten.

    Die Lösung ist:
    GUICtrlCreateListViewItem

    für alle die das selbe Problem haben, die sollten sich diesen Befehl einmal in der Hilfe ansehen

    :)

    Closed

  • List View Spalten füllen

    • MadCatz
    • 2. Dezember 2013 um 15:03

    Problem behoben, der Befehl lautet

    _GUICtrlListView_AddSubItem

    :)

    Closed

  • List View Spalten füllen

    • MadCatz
    • 2. Dezember 2013 um 14:32

    Hey ich bins direkt wieder, hab mir deinen Rat angesehen, allerdings bezieht sich dein Tipp darauf, dass die Zeilen in einer Spalte sich abändern, heist wenn ich z.B.

    _GUICtrlListView_SetItemText($Voll_Uebersicht_List,1 ,$Array1)

    schreibe, dann wandern, die Werte von $Array1 ein nach unten, und eine Leerzeile entsteht. Ich suche allerdings den Weg dafür, wie ich den inhalt des Arrays in eine andere Spalte übertrage, heist, dass dieser inhalt nicht in Spalte A abgelegt wird, sondern in Spalte B


    Beispiel:

    A....................| B
    ------------------|-----------------
    Wert1..............| Array Wert
    Wert2..............| Array Wert 2


    :)

  • List View Spalten füllen

    • MadCatz
    • 2. Dezember 2013 um 14:20

    Hey Danke für deine Hilfe werd mir sofort deinen Rat ansehen!

    Schonmal vielen Dank :)

  • List View Spalten füllen

    • MadCatz
    • 2. Dezember 2013 um 08:27

    Hallo ich bins nochmal,

    Ich habe ein Problem mit der ListView.
    Ich versuche mehrere Spalten eines ListViews mit unterschiedlichen Datensätzen aus verschiedenen ini Dateien zubefüllen, allerdings gelingt mir das nicht.
    Jedesmal werden alle Datensätze in die erste Spalte eingelesen aber das ist total falsch.
    Ich such schon seit Freitag nach einer Lösung, kann aber nichts finden.
    Was muss ich jetzt machen, damit jeweils nur die bestimmte spalte gefüllt wird, außer dass ich noch eine extra funktion für $Voll_Übersicht anlegen muss?


    Das ist der GUI Bereich der gefüllt werden soll:

    $Voll_Uebersicht_List = GUICtrlCreateListView("Mitarbeiter|KomBereich|Spool|Start|Ende|Status/Bemerkung|Express", 24, 64, 1161, 318)
    _GUICtrlListView_SetColumnWidth($Voll_Uebersicht_List,0,165)
    _GUICtrlListView_SetColumnWidth($Voll_Uebersicht_List,1,165)
    _GUICtrlListView_SetColumnWidth($Voll_Uebersicht_List,2,165)
    _GUICtrlListView_SetColumnWidth($Voll_Uebersicht_List,3,165)
    _GUICtrlListView_SetColumnWidth($Voll_Uebersicht_List,4,165)
    _GUICtrlListView_SetColumnWidth($Voll_Uebersicht_List,5,165)
    _GUICtrlListView_SetColumnWidth($Voll_Uebersicht_List,6,165)


    Func KomBereich_lesen()

    $Array1 = IniReadSection($Pfad_KomBereiche&"\KomBereiche.ini", "KomBereiche")
    $LastIndex = $Array1[0][0]
    _GUICtrlListView_DeleteAllItems($Kom_Bereich_List)
    Return $LastIndex

    EndFunc

    Func ListBox_KomBereich_fuellen()
    $Array1 = IniReadSection($Pfad_KomBereiche&"\KomBereiche.ini", "KomBereiche")
    $LastIndex = $Array1[0][0]


    For $i = 1 To $LastIndex Step 1

    GUICtrlCreateListViewItem( $Array1[$i][1], $Kom_Bereich_List)

    Next

    EndFunc


    ;~ ;Stoppgrund hinzufügen Übersicht

    Func Stoppgrundlist_lesen()

    $Array = IniReadSection($Pfad_Stoppgruende&"\Stoppgründe.ini", "Stoppgründe")
    $LastIndex = $Array[0][0]
    _GUICtrlListView_DeleteAllItems($Stoppgruende_List)
    Return $LastIndex

    EndFunc

    Func ListBox_fuellen()
    $Array = IniReadSection($Pfad_Stoppgruende&"\Stoppgründe.ini", "Stoppgründe")
    $LastIndex = $Array[0][0]


    For $i = 1 To $LastIndex Step 1

    GUICtrlCreateListViewItem( $Array[$i][1], $Stoppgruende_List)

    Next

    EndFunc

    ; Mitarbeiter hinzufügen Übersicht

    Func Mitarbeiter_lesen()

    $Array2 = IniReadSection($Pfad_Mitarbeiter&"\Mitarbeiter.ini", "Mitarbeiter")
    $LastIndex = $Array2[0][0]
    _GUICtrlListView_DeleteAllItems($Mitarbeiter_List)
    Return $LastIndex

    EndFunc

    Func ListBox_Mitarbeiter_fuellen()
    $Array2 = IniReadSection($Pfad_Mitarbeiter&"\Mitarbeiter.ini", "Mitarbeiter")
    $LastIndex = $Array2[0][0]


    For $i = 1 To $LastIndex Step 1

    GUICtrlCreateListViewItem( $Array2[$i][1], $Mitarbeiter_List)

    Next

    EndFunc


    Was muss ich jetzt machen, damit jeweils nur die bestimmte spalte gefüllt wird, außer dass ich noch eine extra funktion für $Voll_Übersicht anlegen muss? :)

  • Ini Datei in ListView einfügen??

    • MadCatz
    • 2. Dezember 2013 um 08:13

    Vielen Dank für deine Antwort :)
    Hab diese einfache Problem jedoch schon selbst lösen können

  • Ini Datei in ListView einfügen??

    • MadCatz
    • 29. November 2013 um 12:18

    Hallo Zusammen,

    ich bin neu hier im Forum und habe bereits viel Zeit damit verbracht eine Lösung für mein Problem im Netz zu suche.
    Meine Frage ist, wie ich mir eine Ini Datei in einem ListView anzeigen lassen kann??

    Ich weis da jedenfalls nicht mehr weiter =(
    Der Fehler muss auf jeden fall in den beiden Funktionen liegen =(

    Hab mal alle Includes eingetragen, auch wenn ich nur den fehlerhaften teil poste.


    Quellcode:


    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #include <ComboConstants.au3>
    #include <EditConstants.au3>
    #include <ListBoxConstants.au3>
    #include <File.au3>
    #include <Array.au3>
    #include <GuiComboBox.au3>
    #include <GuiListBox.au3>

    Case $GUI_EVENT_CLOSE
    Exit

    Case $Hinzufuegen_Button ;Stoppgrund Button Belegung und Funktion
    GUISetState (@SW_ENABLE, $Konsole_Neben_Uebersicht)
    GUISetState(@SW_SHOW, $Konsole_Neben_Uebersicht)


    Case $Abbruch_Button_Neben_Ue
    GUISetState(@SW_HIDE, $Konsole_Neben_Uebersicht)


    Case $Hinzufuegen_Button_Neben_Ue
    $Grund = GUICtrlRead($Neuer_Grund_Ue)

    If Not StringRegExp($Grund, "[a-zA-Z]") then
    MsgBox(0+16,"Fehler","Zum Fortfahren muss ein Grund eingegeben werden.")

    Else

    $LastIndex=Stoppgrundlist_lesen()
    IniWrite($Pfad_Stoppgruende&"\Stoppgründe.ini", "Stoppgründe", $LastIndex, $Grund)
    MsgBox(0+48, "Erfolgreich", "Stoppgrund wurde hinzugefügt")
    ListBox_fuellen()

    EndIf

    Func Stoppgrundlist_lesen()

    $Array = IniReadSection($Pfad_Stoppgruende&"\Stoppgründe.ini", "Stoppgründe")
    $LastIndex = $Array[0][0]
    _ArrayDisplay($Array)
    Return $LastIndex

    EndFunc

    Func ListBox_fuellen()
    $Array = IniReadSection($Pfad_Stoppgruende&"\Stoppgründe.ini", "Stoppgründe")
    $LastIndex = $Array[0][0]
    _GUICtrlListBox_ResetContent($Stoppgruende_List)

    For $i = 1 To $LastIndex Step 1

    _GUICtrlListBox_AddString($Stoppgruende_List, $Array[$i][1])

    Next
    ;~ _ArrayDisplay($Array)
    EndFunc

Spenden

Jeder Euro hilft uns, Euch zu helfen.

Download

AutoIt Tutorial
AutoIt Buch
Onlinehilfe
AutoIt Entwickler
  1. Datenschutzerklärung
  2. Impressum
  3. Shoutbox-Archiv
Community-Software: WoltLab Suite™