Robert Neville Geschrieben 30. April 2009 Geschrieben 30. April 2009 Hallo Zusammen, ich habe eine für mich unlösbare Aufgabe und hoffe auf Hilfen. Hier mein Problem: Dim Werteliste As String Werteliste = "1 Stück~2 Stück~3 Stück|CD-Rom~Download|Rot~Blau~Grün|S~M~L~XL" In dieser Werteliste sind "Merkmale" (Menge, Datenträger, Farbe,Größen) voneinander mit dem Symbol Pipe '|' getrennt. Jedes Merkmal hat dann Ausprägungen (Rot, Blau, Grün, ...) die durch Tilde '~' getrennt werden. Ich benötige nun eine rekursive Funktion, die mir alle möglichen Varianten erzeugt. Alle meine Ansätze verlaufen im Sand und bringen entweder ein falsche Ergebnis oder es werden nicht alle möglichen Kombinationen geliefert. Ansatz: Dim i As Long Dim Arr_Werteliste() As String Dim Arr() As String Arr_Werteliste() = Split(Werteliste, "|") Arr() = Split(Arr_Werteliste(counter), "~") Wie muss nun die Rekursive Schleife aufgebaut sein und mit welchen Parametern muss diese sich selbst wieder aufrufen, um an das Ergnis zu gelangen? Hat jemand einen Rat, Funktion oder Idee? Vielen Dank für Eure Bemühungen im Voraus! Diese Funktion müsste folgendes Ausgeben: 1 Stück, CD-Rom, Rot, S 2 Stück, CD-Rom, Rot, S 3 Stück, CD-Rom, Rot, S 1 Stück, Download, Rot, S 2 Stück, Download, Rot, S 3 Stück, Download, Rot, S 1 Stück, CD-Rom, Blau, S 2 Stück, CD-Rom, Blau, S 3 Stück, CD-Rom, Blau, S 1 Stück, Download, Blau, S 2 Stück, Download, Blau, S 3 Stück, Download, Blau, S 1 Stück, CD-Rom, Grün, S 2 Stück, CD-Rom, Grün, S 3 Stück, CD-Rom, Grün, S 1 Stück, Download, Grün, S 2 Stück, Download, Grün, S 3 Stück, Download, Grün, S 1 Stück, CD-Rom, Rot, M 2 Stück, CD-Rom, Rot, M 3 Stück, CD-Rom, Rot, M 1 Stück, Download, Rot, M 2 Stück, Download, Rot, M 3 Stück, Download, Rot, M 1 Stück, CD-Rom, Blau, M 2 Stück, CD-Rom, Blau, M 3 Stück, CD-Rom, Blau, M 1 Stück, Download, Blau, M 2 Stück, Download, Blau, M 3 Stück, Download, Blau, M 1 Stück, CD-Rom, Grün, M 2 Stück, CD-Rom, Grün, M 3 Stück, CD-Rom, Grün, M 1 Stück, Download, Grün, M 2 Stück, Download, Grün, M 3 Stück, Download, Grün, M 1 Stück, CD-Rom, Rot, L 2 Stück, CD-Rom, Rot, L 3 Stück, CD-Rom, Rot, L 1 Stück, Download, Rot, L 2 Stück, Download, Rot, L 3 Stück, Download, Rot, L 1 Stück, CD-Rom, Blau, L 2 Stück, CD-Rom, Blau, L 3 Stück, CD-Rom, Blau, L 1 Stück, Download, Blau, L 2 Stück, Download, Blau, L 3 Stück, Download, Blau, L 1 Stück, CD-Rom, Grün, L 2 Stück, CD-Rom, Grün, L 3 Stück, CD-Rom, Grün, L 1 Stück, Download, Grün, L 2 Stück, Download, Grün, L 3 Stück, Download, Grün, L 1 Stück, CD-Rom, Rot, XL 2 Stück, CD-Rom, Rot, XL 3 Stück, CD-Rom, Rot, XL 1 Stück, Download, Rot, XL 2 Stück, Download, Rot, XL 3 Stück, Download, Rot, XL 1 Stück, CD-Rom, Blau, XL 2 Stück, CD-Rom, Blau, XL 3 Stück, CD-Rom, Blau, XL 1 Stück, Download, Blau, XL 2 Stück, Download, Blau, XL 3 Stück, Download, Blau, XL 1 Stück, CD-Rom, Grün, XL 2 Stück, CD-Rom, Grün, XL 3 Stück, CD-Rom, Grün, XL 1 Stück, Download, Grün, XL 2 Stück, Download, Grün, XL 3 Stück, Download, Grün, XL
flashpixx Geschrieben 30. April 2009 Geschrieben 30. April 2009 Wie muss nun die Rekursive Schleife aufgebaut sein und mit welchen Parametern muss diese sich selbst wieder aufrufen, um an das Ergnis zu gelangen? Du widersprichst Dir hier selbst, eine rekursive Funktion ist keine Schleife. Ich benötige nun eine rekursive Funktion, die mir alle möglichen Varianten erzeugt. Es ist doch bei dieser Sache völlig unerheblich welchen Seperator Du nimmst, wenn Du alle Kombinationen brauchst. Wenn ich den String "a-b-c" habe, erhalte ich 2^3 Möglichkeiten diese Zeichen zu kombinieren. Man kann das durch Permutation erzeugen: Ich lasse das erste Element unangetastet und permutiere die restliche Folge, wobei der erste Schritt eine Permutation der gesamten Folge ist. Phil
Robert Neville Geschrieben 30. April 2009 Autor Geschrieben 30. April 2009 Hallo, ich habe das Problem gelöst... Viele Grüße, Robert
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden