Cherche solution pour avoir moins de IF.

Résolu
Tempus01
Messages postés
56
Date d'inscription
mercredi 6 janvier 2021
Statut
Membre
Dernière intervention
3 avril 2022
- 13 févr. 2021 à 12:09
vb95
Messages postés
2778
Date d'inscription
samedi 11 janvier 2014
Statut
Modérateur
Dernière intervention
5 juillet 2022
- 14 févr. 2021 à 11:47
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

vb95
Messages postés
2778
Date d'inscription
samedi 11 janvier 2014
Statut
Modérateur
Dernière intervention
5 juillet 2022
151
13 févr. 2021 à 13:02
Bonjour
Rien ne vaut un cours complet en pdf : https://plasserre.developpez.com/cours/vb-net/
1
Whismeril
Messages postés
17497
Date d'inscription
mardi 11 mars 2003
Statut
Modérateur
Dernière intervention
6 juillet 2022
602
13 févr. 2021 à 13:16
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.

1
Whismeril
Messages postés
17497
Date d'inscription
mardi 11 mars 2003
Statut
Modérateur
Dernière intervention
6 juillet 2022
602
Modifié le 13 févr. 2021 à 12:37
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
0
Whismeril
Messages postés
17497
Date d'inscription
mardi 11 mars 2003
Statut
Modérateur
Dernière intervention
6 juillet 2022
602
13 févr. 2021 à 12:39
Ps le binding remplace la série de
Truc.Items.Add(chose)
0
Tempus01
Messages postés
56
Date d'inscription
mercredi 6 janvier 2021
Statut
Membre
Dernière intervention
3 avril 2022

13 févr. 2021 à 12:53
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.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Whismeril
Messages postés
17497
Date d'inscription
mardi 11 mars 2003
Statut
Modérateur
Dernière intervention
6 juillet 2022
602
Modifié le 13 févr. 2021 à 13:20
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
0
Tempus01
Messages postés
56
Date d'inscription
mercredi 6 janvier 2021
Statut
Membre
Dernière intervention
3 avril 2022

14 févr. 2021 à 11:29
Un peu de lecteur ne m'a pas fait de mal, et j'ai pu créer les tableaux, Merci à vous deux.
0
vb95
Messages postés
2778
Date d'inscription
samedi 11 janvier 2014
Statut
Modérateur
Dernière intervention
5 juillet 2022
151
14 févr. 2021 à 11:47
Bonjour
si ton problème est résolu pense à clôturer le sujet . Merci !
0