vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
vb@rchiv Offline-Reader - exklusiv auf der vb@rchiv CD Vol.4  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Visual-Basic Einsteiger
Brauch mal Hilfe mit Array 
Autor: JRostek
Datum: 05.08.05 09:52

Ich habe folgendes Problem:
Ich habe eine Anzahl von Texten z.B.
Text1 = "A1;A2"
Text2 = "B1;B2"
Text3= "VAR1;VAR2"

Die Anzahl der Texte(Text1 bis ...) und Inhalte kann beliebig sein.

Ich möchte gern alle Kombination ausgeben

Aus obigen Texten soll rauskommen es gibt 8 Kombination:
A1B1VAR1
A1B1VAR2
A1B2VAR1
A1B2VAR2
A2B1VAR1
A2B1VAR2
A2B2VAR1
A2B2VAR2

Wenn ich die Texte kenne und wieviele es sind kann man ja folgenden Code benutzen
Dim aTexte(2) As Variant
aTexte(0) = "A1;A2"
aTexte(1) = "B1;B2"
aTexte(2) = "VAR1;VAR2"
 
k = Split(aTexte(0), ";")
l = Split(aTexte(1), ";")
m = Split(aTexte(2), ";")
  For i = 0 To UBound(k)
    For g = 0 To UBound(l)
      For d = 0 To UBound(m)
        Debug.Print k(i) & l(g) & m(d)
      Next
    Next g
 
  Next i
Aber wie mach ich das ganze dynamisch wenn ich mehr oder weniger als 3 texte habe ? ?
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Brauch mal Hilfe mit Array 
Autor: vbtricks
Datum: 05.08.05 10:48

Hallo,

so etwas löst man rekursiv:
Option Explicit
 
Dim aTexte(2) As String
 
' diese rekursive Funktion wird für jede Stelle des Ergebnisses aufgerufen
Private Sub Recursive(ByVal sCurText As String, ByVal iIndex As Integer)
  Dim sSplitted() As String
  Dim i As Integer
  If iIndex > UBound(aTexte) Then
    ' Ende erreicht
    List1.AddItem sCurText
  Else
    ' Möglichkeiten für aktuelle Stelle aufsplitten
    sSplitted = Split(aTexte(iIndex), ";")
    ' alle Möglichkeiten für aktuelle Stelle durchgehen
    For i = 0 To UBound(sSplitted)
        ' nächste Stelle
        Recursive sCurText & sSplitted(i), iIndex + 1
    Next
  End If
End Sub
 
Private Sub Command1_Click()
  List1.Clear
  Recursive "", 0
End Sub
 
Private Sub Form_Load()
  aTexte(0) = "A1;A2"
  aTexte(1) = "B1;B2"
  aTexte(2) = "VAR1;VAR2"
End Sub
Für den Source benötigst du eine Listbox (List1), in die die Kombinationen eingefügt werden, sowie einen Button (Command1), der das ganze startet.


Gruß,

Stefan

PS: Kein Variant verwenden!

Web: http://www.vbtricks.de.vu/

VBTricks.de.vu. Meine Webseite zu VB und anderen Programmiersprachen. Verschiedene fortgeschrittene OCXe und komplette Projekte sind im Sourcecode verf?gbar.

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Brauch mal Hilfe mit Array 
Autor: JRostek
Datum: 05.08.05 10:55

Super das hir sehr geholfen.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel