VB Script : Générer toutes les combinaisons avec répétition
Résolu/Fermé
Manudu44
Messages postés
2
Date d'inscription
mercredi 13 août 2014
Statut
Membre
Dernière intervention
16 août 2014
-
Modifié par Manudu44 le 13/08/2014 à 21:41
Manudu44 Messages postés 2 Date d'inscription mercredi 13 août 2014 Statut Membre Dernière intervention 16 août 2014 - 16 août 2014 à 14:50
Manudu44 Messages postés 2 Date d'inscription mercredi 13 août 2014 Statut Membre Dernière intervention 16 août 2014 - 16 août 2014 à 14:50
A voir également:
- VB Script : Générer toutes les combinaisons avec répétition
- Script vidéo youtube - Guide
- Vb - Télécharger - Langages
- Vb cable - Télécharger - Audio & Musique
- Ghost script - Télécharger - Polices de caractères
- Microsoft activation script - Accueil - Windows
1 réponse
Manudu44
Messages postés
2
Date d'inscription
mercredi 13 août 2014
Statut
Membre
Dernière intervention
16 août 2014
16 août 2014 à 14:50
16 août 2014 à 14:50
Sujet résolu !
Const ForWriting = 2 Set fso = CreateObject("Scripting.FileSystemObject") Set WshShell = WScript.CreateObject("WScript.Shell") txt_File_Location = fso.GetParentFolderName(wscript.ScriptFullName) + "\Permutations avec répétition.txt" 'Emplacement du fichier .txt de sauvegarde des résultat If fso.FileExists(txt_File_Location) Then fso.DeleteFile txt_File_Location 'S'il existe déjà, le supprimer pour vider la liste de résultat Set txt_File = fso.OpenTextFile(txt_file_location, ForWriting, true) Longueur = InputBox("Entrez la longueur du résultat" + vbNewLine + vbNewLine + "Pour des raisons de code et de temps de calcul, vous êtes limité à 10 caratères." + vbNewLine + vbNewLine + vbNewLine + "Les caractères en trop seront tout simplement ignorés des opérations", "Entrée de la longueur du résultat", "3") If Longueur = "" OR Longueur = "0" Then Erreur = WshShell.Popup("Veuillez entrer une valeur au dessus de 0", 5, "ERROR", 0 + 64) : WScript.Quit 'Si la variable n'a pas de valeur, quitter Elements = Trim(InputBox("Entrez vos éléments, séparés par des virgules" + vbNewLine + vbNewLine + "Pour des raisons de code et de temps de calcul, vous êtes limité à 10 éléments." + vbNewLine + vbNewLine + vbNewLine + "Les éléments en trop seront tout simplement ignorés des opérations", "Entrée des éléments", "A, B, C")) If Elements = "" Then Erreur = WshShell.Popup("Veuillez entrer une liste d'éléments" + vbNewLine + "comportant entre 1 et 10 caractères", 5, "ERROR", 0 + 64) : WScript.Quit 'Si la variable n'a pas de valeur, quitter Elements = Replace(Elements, " ", "") Cut = Split(Elements, ",") If Len(Elements) = 1 Then txt_File.WriteLine Cut(0) : WScript.Quit 'S'il n'y a qu'un élément, l'écrire et quitter Chaine = Cut(0) + Cut (0) + Cut (0) + Cut (0) + Cut (0) + Cut (0) + Cut (0) + Cut (0) + Cut (0) + Cut (0) Chaine = Left(Chaine, Longueur) For i = 1 to (UBound(Cut) + 1) ^ Longueur txt_File.WriteLine Chaine 'Ecrire le résultat If Left(Chaine, 1) = Cut(UBound(Cut)) Then Number_Left_1 = 0 If Mid(Chaine, 2, 1) = Cut(UBound(Cut)) Then Number_Left_2 = 0 If Mid(Chaine, 3, 1) = Cut(UBound(Cut)) Then Number_Left_3 = 0 If Mid(Chaine, 4, 1) = Cut(UBound(Cut)) Then Number_Left_4 = 0 If Mid(Chaine, 5, 1) = Cut(UBound(Cut)) Then Number_Left_5 = 0 If Mid(Chaine, 6, 1) = Cut(UBound(Cut)) Then Number_Left_6 = 0 If Mid(Chaine, 7, 1) = Cut(UBound(Cut)) Then Number_Left_7 = 0 If Mid(Chaine, 8, 1) = Cut(UBound(Cut)) Then Number_Left_8 = 0 If Mid(Chaine, 9, 1) = Cut(UBound(Cut)) Then Number_Left_9 = 0 If Mid(Chaine, 10, 1) = Cut(UBound(Cut)) Then Number_Left_10 = 0 Else Number_Left_10 = Number_Left_10 + 1 Chaine = Cut(Number_Left_1) + Cut (Number_Left_2) + Cut (Number_Left_3) + Cut (Number_Left_4) + Cut (Number_Left_5) + Cut (Number_Left_6) + Cut (Number_Left_7) + Cut (Number_Left_8) + Cut (Number_Left_9) + Cut (Number_Left_10) Chaine = Left(Chaine, Longueur) End If Else Number_Left_9 = Number_Left_9 + 1 Chaine = Cut(Number_Left_1) + Cut (Number_Left_2) + Cut (Number_Left_3) + Cut (Number_Left_4) + Cut (Number_Left_5) + Cut (Number_Left_6) + Cut (Number_Left_7) + Cut (Number_Left_8) + Cut (Number_Left_9) + Cut (Number_Left_10) Chaine = Left(Chaine, Longueur) End If Else Number_Left_8 = Number_Left_8 + 1 Chaine = Cut(Number_Left_1) + Cut (Number_Left_2) + Cut (Number_Left_3) + Cut (Number_Left_4) + Cut (Number_Left_5) + Cut (Number_Left_6) + Cut (Number_Left_7) + Cut (Number_Left_8) + Cut (Number_Left_9) + Cut (Number_Left_10) Chaine = Left(Chaine, Longueur) End If Else Number_Left_7 = Number_Left_7 + 1 Chaine = Cut(Number_Left_1) + Cut (Number_Left_2) + Cut (Number_Left_3) + Cut (Number_Left_4) + Cut (Number_Left_5) + Cut (Number_Left_6) + Cut (Number_Left_7) + Cut (Number_Left_8) + Cut (Number_Left_9) + Cut (Number_Left_10) Chaine = Left(Chaine, Longueur) End If Else Number_Left_6 = Number_Left_6 + 1 Chaine = Cut(Number_Left_1) + Cut (Number_Left_2) + Cut (Number_Left_3) + Cut (Number_Left_4) + Cut (Number_Left_5) + Cut (Number_Left_6) + Cut (Number_Left_7) + Cut (Number_Left_8) + Cut (Number_Left_9) + Cut (Number_Left_10) Chaine = Left(Chaine, Longueur) End If Else Number_Left_5 = Number_Left_5 + 1 Chaine = Cut(Number_Left_1) + Cut (Number_Left_2) + Cut (Number_Left_3) + Cut (Number_Left_4) + Cut (Number_Left_5) + Cut (Number_Left_6) + Cut (Number_Left_7) + Cut (Number_Left_8) + Cut (Number_Left_9) + Cut (Number_Left_10) Chaine = Left(Chaine, Longueur) End If Else Number_Left_4 = Number_Left_4 + 1 Chaine = Cut(Number_Left_1) + Cut (Number_Left_2) + Cut (Number_Left_3) + Cut (Number_Left_4) + Cut (Number_Left_5) + Cut (Number_Left_6) + Cut (Number_Left_7) + Cut (Number_Left_8) + Cut (Number_Left_9) + Cut (Number_Left_10) Chaine = Left(Chaine, Longueur) End If Else Number_Left_3 = Number_Left_3 + 1 Chaine = Cut(Number_Left_1) + Cut (Number_Left_2) + Cut (Number_Left_3) + Cut (Number_Left_4) + Cut (Number_Left_5) + Cut (Number_Left_6) + Cut (Number_Left_7) + Cut (Number_Left_8) + Cut (Number_Left_9) + Cut (Number_Left_10) Chaine = Left(Chaine, Longueur) End If Else Number_Left_2 = Number_Left_2 + 1 Chaine = Cut(Number_Left_1) + Cut (Number_Left_2) + Cut (Number_Left_3) + Cut (Number_Left_4) + Cut (Number_Left_5) + Cut (Number_Left_6) + Cut (Number_Left_7) + Cut (Number_Left_8) + Cut (Number_Left_9) + Cut (Number_Left_10) Chaine = Left(Chaine, Longueur) End If Else Number_Left_1 = Number_Left_1 + 1 Chaine = Cut(Number_Left_1) + Cut (Number_Left_2) + Cut (Number_Left_3) + Cut (Number_Left_4) + Cut (Number_Left_5) + Cut (Number_Left_6) + Cut (Number_Left_7) + Cut (Number_Left_8) + Cut (Number_Left_9) + Cut (Number_Left_10) Chaine = Left(Chaine, Longueur) End If Next Fin = WshShell.Popup("Fin des opérations", 5, "Traitement", 0 + 64)