Ces deux procédures feront ce que vous voulez. Bien que, si c'est pour quelque chose de plus qu'une tâche d'école, je suggérerais plutôt que de travailler avec des listes comme source de données pour les permutations, créer une classe pour chaque objet (chapeau, chemise, pull et pantalon). Chacun peut ensuite avoir ses propres propriétés telles que le code de stock, la description, la couleur, la taille, le numéro de commande, le fournisseur, etc. Ensuite, générez une chaîne de détails pour chaque article de la description, de la couleur et de la taille. les chaînes de détails de chaque article. Bien sûr, en fin de compte, vous seriez mieux d'utiliser une base de données, mais c'est plus loin dans le développement de votre programme.
Private Function GeneratePermutations() As List(Of String)
Dim permList As New List(Of String)
For Each hat As String In ListBox1.Items
For Each shirt As String In ListBox2.Items
For Each jumper As String In ListBox3.Items
For Each trousers As String In ListBox4.Items
permList.Add(hat & "," & shirt & "," & jumper & "," & trousers)
Next
Next
Next
Next
Return permList
End Function
Private Sub SaveFile(permlist As List(Of String), filename As String)
If File.Exists(filename) Then
Dim result As DialogResult = MessageBox.Show("File Exists, Overwrite? Y/N", "File Exists", MessageBoxButtons.YesNo)
If result = DialogResult.No Then
Exit Sub
End If
End If
Try
Using sr As New StreamWriter(filename)
For Each line As String In permlist
sr.WriteLine(line)
Next
End Using
Catch ex As Exception
MessageBox.Show("Exception:" & ex.Message & vbCrLf & "Inner Exception :" & ex.InnerException.Message)
End Try
End Sub
Exemple d'utilisation
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Dim permutationList As New List(Of String)
For i As Integer = 1 To 5
ListBox1.Items.Add("Hat" & i.ToString)
ListBox2.Items.Add("Shirt" & i.ToString)
ListBox3.Items.Add("Jumper" & i.ToString)
ListBox4.Items.Add("Trousers" & i.ToString)
Next
permutationList = GeneratePermutations()
SaveFile(permutationList, "K:\perms.txt")
End Sub
Ces lignes ..
permutationList = GeneratePermutations()
SaveFile(permutationList, "K:\perms.txt")
pourrait être écourtée suite à
SaveFile(GeneratePermutations, "K:\perms.txt")
et le li suivant ne serait alors pas nécessaire
Dim permutationList As New List(Of String)