Array - ID zusammenfassen?

  • Hallo Freunde,

    ich hätte da gerne mal wieder ne Hilfe von euch...

    In einer Textdatei haben ich folgenden Inhalt.

    ID|ANLEITUNG|PFAD

    0001|1234|

    0002|5678|

    0001|9010|

    0002|4234|

    0003|2342|

    0004|6546|

    Mein Script packt sich die Datei, tüdelt das ganze zunächst in ein Array. Dann bearbeite ich mit einem Split dieses Array und verfrachte es wieder in ein neues Array.

    Spoiler anzeigen

    Soweit so gut... jetzt möchte ich aber gerne, dass die Werte mit der gleichen ID quasi in eine Zeile zusammen gepackt werden. (wie auf dem Bild zu sehen)

    pasted-from-clipboard.png

    Muss ich im zweiten Array, nach den Werten aus dem ersten Array suchen? Oder wie bewerkstellige ich das am besten??? Gibts Vorschläge die das ganze saubere Lösen könnten?

    Ziel soll nachher sein, dass ich in einer Combox die jeweilige ID auswähle (ich kriege es auch nicht hin, die ID-Werte aus dem Array da anzuzeigen) und dann die bis zu 4 Anleitungen, die dann in der jeweiligen Spalte hinter der ID stehen, in der GUI zur Anzeigen bringen kann.


    Helft einem blöden bitte, was schlauer zu werden ;(

  • Mit Arrays ist das ganze so eine Friemelei, da eine Id mehrere haben kann und andere Ids weniger aber diese trotzdem die entsprechenden Indizes belegen können.

    Ein ganz einfacher straight-forward Ansatz wäre es wohl ein neues Array zu erzeugen mit der Größe 0.

    Das iterierst das erste Array und schaust nach ob der aktuelle Index des 1. Arrays im zweiten schon vorhanden ist.

    Wenn nicht, dann ReDimst du das ganze um eins (die zweite Dimension behält die Größe!)

    Dann füllst du in den entsprechenden Eintrag vom 2. Array die Id ein und trägst dahinter die Nummer ein.

    Sollte schon die Id im zweiten Array existieren, dann läufst du in der zweiten Dimension einfach von links nach rechts bis du ein Feld findest welches leer ist "" oder du Out-Of-Bounds bist.

    Solltest du Out-Of-Bounds sein, kannst du die zweite Dimension ReDimmen (die Einträge gehen beim Vergrößern nicht verloren) und in den letzten Eintrag eintragen.

    Solltest du nicht Out-Of-Bounds sein, trägst du es einfach in das erste leere Feld ein.

    Dann machst du mit dem nächsten Index des 1. Array weiter.

    Das ganze wäre mit Listen viel viel schöner, aber AutoIt hat leider keine Listen. Sogar mit Dictionaries wäre das ganze schöner zu lösen.

    So hätte ich das ganze gemacht (Array-Variante). Je nach Datenmenge kann das langsam laufen und es gibt definitiv bessere Implementationen aber es läuft und es ist nicht allzu kompliziert.

    In [0][0] steht die Id und in [0][1] irgendeine Zahl die dahinter gepackt wird.

  • Du hast Glück weil ich gerade etwas Zeit übrig hatte.

    Da du dich unnötig kompliziert ausgedrückt hast, hab ich nicht wirklich verstanden was du wolltest,

    aber ich denke mein Script sollte in die richtige Richtung gehen.

    An deine Bedürfnisse anpassen darfst du es selber.

    Ja danke zumindest wird die Combobox aus dem Array heraus bedient... ist quasi der zweite Teil meiner Frage :)

    Echt wars so kompliziert? 8| Ich versuche eigentlich immer alles so haarklein wie möglich zu formulieren, dass es (hoffentlich) jeder versteht...

    Ganz unverständlich wars ja nicht, denn Alpines hat den ersten Teil geliefert... Danke dafür! 8)