Robert Neville Geschrieben 30. April 2009 Teilen 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
flashpixx Geschrieben 30. April 2009 Teilen 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Robert Neville Geschrieben 30. April 2009 Autor Teilen Geschrieben 30. April 2009 Hallo, ich habe das Problem gelöst... Viele Grüße, Robert Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.