Cherche solution pour avoir moins de IF. [Résolu]

Signaler
Messages postés
20
Date d'inscription
mercredi 6 janvier 2021
Statut
Membre
Dernière intervention
14 février 2021
-
Messages postés
2377
Date d'inscription
samedi 11 janvier 2014
Statut
Contributeur
Dernière intervention
28 février 2021
-
Bonjour le forum,

Je recherche un code qui me permettrait d'avoir moins de ligne de IF.

Je m'explique, mon code fonctionne bien mais il est trop lourd/long, je me demande si il n'existe pas une autre façon de procéder afin d'arriver au même résultats.

le Code me permet d'ouvrir un dossier, il y a 14 dossiers principal Music1 Music2,... jusqu'à Music14, puis les 3 sous dossier 2019, 2020 et 2021 et pour finir 1, 2, 3...12 pour les mois de l'année.

Exemple:

C: \Music1\2019\1\
C: \Music1\2019\2\
....
C: \Music1\2019\12\

C:\Music1\2020\1\
C: \Music1\2020\2\
....
C: \Music1\2020\12\

C:\Music1\2021\1\
C: \Music1\2021\2\
....
C: \Music1\2021\12\

Cela va jusqu'à Music 14.

Sur le formulaire il y a 3 combobox et un bouton.

Voici un bout de mon code.
 Dim Janvier As String
            Dim Février As String
            Dim Mars As String
            Dim Avril As String
            Dim Mai As String
            Dim Juin As String
            Dim Juillet As String
            Dim Août As String
            Dim Septembre As String
            Dim Octobre As String
            Dim Novembre As String
            Dim Décembre As String
 
            Dim V1 = "\1"
            Dim V2 = "\2"
            Dim V3 = "\3"
            Dim V4 = "\4"
            Dim V5 = "\11"
            Dim V6 = "\5"
            Dim V7 = "\6"
            Dim V8 = "\7"
            Dim V9 = "\8"
            Dim V10 = "\9"
            Dim V11 = "\10"
            Dim V12 = "\12"
 
 Dim Dossier2019 = "C: \Music1\2019"
 Dim Dossier2020 = "C: \Music1\2020"
 Dim Dossier2021 = "C: \Music1\2021"
 
 
        ComboBox1.Items.Add("Music1")
        ComboBox1.Items.Add("Music2")
        ComboBox1.Items.Add("Music3")
        ComboBox1.Items.Add("Music4")
        ComboBox1.Items.Add("Music5")
        ComboBox1.Items.Add("Music6")
        ComboBox1.Items.Add("Music7")
        ComboBox1.Items.Add("Music8")
        ComboBox1.Items.Add("Music9")
        ComboBox1.Items.Add("Music10")
        ComboBox1.Items.Add("Music11")
        ComboBox1.Items.Add("Music12")
        ComboBox1.Items.Add("Music13")
        ComboBox1.Items.Add("Music14")
 
        ComboBox3.Items.Add("Janvier")
        ComboBox3.Items.Add("Février")
        ComboBox3.Items.Add("Mars")
        ComboBox3.Items.Add("Avril")
        ComboBox3.Items.Add("Mai")
        ComboBox3.Items.Add("Juin")
        ComboBox3.Items.Add("Juillet")
        ComboBox3.Items.Add("Août")
        ComboBox3.Items.Add("Septembre")
        ComboBox3.Items.Add("Octobre")
        ComboBox3.Items.Add("Novembre")
        ComboBox3.Items.Add("Décembre") 
 
        ComboBox2.Items.Add("2021")
        ComboBox2.Items.Add("2020")
        ComboBox2.Items.Add("2019")
 
 
 
 If ComboBox1.Text = "Music1" And ComboBox2.Text = "2021" And ComboBox3.Text = "Janvier" Then
                Janvier = Dossier2021 + V1
                Process.Start(Janvier)

J'ai donc des dizaines et des dizaines de IF....

Avez vous une idée pour raccourcir le code ?

Merci le forum,

6 réponses

Messages postés
2377
Date d'inscription
samedi 11 janvier 2014
Statut
Contributeur
Dernière intervention
28 février 2021
124
Bonjour
Rien ne vaut un cours complet en pdf : https://plasserre.developpez.com/cours/vb-net/
Messages postés
15651
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
5 mars 2021
516
Alors pour youtube, tu peux lire ce que j'en pense là
https://forums.commentcamarche.net/forum/affich-37058756-apprendre-a-developper-en-swiftui#1

Et puis là, y'a pas besoin de plus que
Dim tableau As String() = {"mot1", "mot2", "mot3"}


Mais c'est sûr et certain tu devrais savoir ce qu'est un tableau, et comment on l'utilise avant même d'avoir découvert les combobox.
Comme la majorité des autodidactes (moi aussi à mon temps...) tu mets la charrue avant les boeufs.
Le meilleur conseil que je puisse te donner c'est de mettre ton projet de coté quelques jours et de suivre un cours en ligne, mais pas celui de PLassere, (désolé VB) il s'adresse aux anciens de VB6 ou VBA, et il a quelques défauts selon moi.
Pour un primo codeur .Net, je conseille celui de Tahé https://tahe.developpez.com/dotnet/vbnet/

Après ça tu auras le socle nécessaire à un bon apprentissage.

Messages postés
15651
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
5 mars 2021
516
Bonjour

Tout d’abord il est important de bien nommer tes contrôles.
C’est plus facile pour nous de comprendre et même pour toi dans 1 an ou 2, quand tu voudras faire des modifs.
Je vais utiliser une convention de nommage courante: 3 caractères désignant le type de contrôle en minuscules puis un ou plusieurs mots décrivant son utilité en camelCase.

Tu crées 3 tableaux
  • un avec tes mots « Musicx »
  • un avec les mois
  • un avec les années


Ensuite, tu bindes tes tableaux aux combobox
cbxMusic.DataSource = tabMusic
Etc


Pour créer le chemin de ton dossier tu vas te servir de la classe Path.

dim chemin as string = Path.Combine("C:", cbxMusic.Text, cbxAnnee.Text, (cbxMois.SelectedIndex + 1).ToString())

Quand j'étais petit, la mer Morte n'était que malade.
George Burns
Messages postés
15651
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
5 mars 2021
516
Ps le binding remplace la série de
Truc.Items.Add(chose)
Messages postés
20
Date d'inscription
mercredi 6 janvier 2021
Statut
Membre
Dernière intervention
14 février 2021

Bonjour,

Merci pour cette nouvelle perspective.

Je n'ai jamais créé de tableaux dans vb.net mais je viens de trouver un tuto sur YOUTUBE "- Les Tableaux (Arrays)", je vais le visionner.
Messages postés
15651
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
5 mars 2021
516
D'ailleurs là
https://codes-sources.commentcamarche.net/forum/affich-10104036-debutant-en-vb-net-et-deja-passionne#1
le 7 janvier, VB95 t'as déjà proposé le cours de PLassere.

Si tu avais suivi son conseil à l'époque, au plus tard, le 15 janvier, tu aurais fini le cours.
Tu aurais probablement mieux codé ce que tu nous as montré ce matin et jamais la question.

Quand j'étais petit, la mer Morte n'était que malade.
George Burns
Messages postés
20
Date d'inscription
mercredi 6 janvier 2021
Statut
Membre
Dernière intervention
14 février 2021

Un peu de lecteur ne m'a pas fait de mal, et j'ai pu créer les tableaux, Merci à vous deux.
Messages postés
2377
Date d'inscription
samedi 11 janvier 2014
Statut
Contributeur
Dernière intervention
28 février 2021
124
Bonjour
si ton problème est résolu pense à clôturer le sujet . Merci !