Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

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

Geschrieben

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

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 erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...