HOROSCOPE ORDINAIRE

Messages postés
373
Date d'inscription
samedi 1 juin 2002
Statut
Membre
Dernière intervention
17 juin 2013
- - Dernière réponse : Galactus13
Messages postés
326
Date d'inscription
lundi 29 septembre 2008
Statut
Membre
Dernière intervention
27 juillet 2019
- 18 févr. 2013 à 19:39
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/54949-horoscope-ordinaire

Afficher la suite 
cs_JLN
Messages postés
373
Date d'inscription
samedi 1 juin 2002
Statut
Membre
Dernière intervention
17 juin 2013
-
Ouais Super ! Comme dans les vrais horoscope, c'est n'importe quoi et certains s'y reconnaisse... Etonnant non ???
Bon ca c'était pour le plaisir, concernant le code voici mes critiques constructives:
- Pas de commentaires (dur pour les novices que ce site est sensé aider)
- Beaucoup trop de IF et ElseIf. Des Select Case auraient été plus efficaces.
- Pas (ou presque pas) d'indentation.
- Plutot que d'ouvrir de simples fichiers texte, il aurait été préférable d'utiliser une BDD.
Sinon pour le reste, aspect simple et pratique, le logo qui s'affiche en fonction de la date c'est sympa.
Bonne prog,
@+ JLN
cs_ghuysmans99
Messages postés
3983
Date d'inscription
jeudi 14 juillet 2005
Statut
Membre
Dernière intervention
30 juin 2013
11 -
Passe par une seule fonction pour charger les fichiers texte... Là c'est horriblement répétitif.
mdry
Messages postés
33
Date d'inscription
dimanche 25 juillet 2004
Statut
Membre
Dernière intervention
5 mai 2013
-
Salut,

Voici un petit exemple simple:
Renomme tout tes Commandes (CmdVerseau,CmdCapricorne,etc...) en cmdSigne et met Index de 0 à 11

Private Sub cmdVotreSigne_Click() ' quand clique sur le bouton
Dim Jour As Integer
Dim Tmp As String
Dim Idx As Integer

Jour = cboJour.Text

Select Case Val(cboMois.Text)
Case 1: If Jour >= 20 And Jour <= 31 Then Idx = 0 Else Idx = 11
Case 2: If Jour >= 19 And Jour <= 29 Then Idx = 1 Else Idx = 0
Case 3: If Jour >= 21 And Jour <= 31 Then Idx = 2 Else Idx = 1
Case 4: If Jour >= 20 And Jour <= 30 Then Idx = 3 Else Idx = 2
Case 5: If Jour >= 21 And Jour <= 31 Then Idx = 4 Else Idx = 3
Case 6: If Jour >= 22 And Jour <= 30 Then Idx = 5 Else Idx = 4
Case 7: If Jour >= 23 And Jour <= 31 Then Idx = 6 Else Idx = 5
Case 8: If Jour >= 23 And Jour <= 31 Then Idx = 7 Else Idx = 6
Case 9: If Jour >= 23 And Jour <= 30 Then Idx = 8 Else Idx = 7
Case 10: If Jour >= 23 And Jour <= 31 Then Idx = 9 Else Idx = 8
Case 11: If Jour >= 22 And Jour <= 30 Then Idx = 10 Else Idx = 9
Case 12: If Jour >= 22 And Jour <= 31 Then Idx = 11 Else Idx = 10
End Select
cmdSigne(Idx).Visible = True
txt_File.Text = ""
End Sub

Private Sub cmdSigne_Click(Index As Integer)
Dim FF As Integer 'premier Handle libre
Dim Signe As Variant 'liste des signes (0 à 11)
Dim Buffer As String 'pour lire le fichier

Signe = Array("Verseau", "Poissons", "Belier", "Taureau", "Gemeaux", "Cancer", "Lion", "Vierge", "Balance", "Scorpion", "Sagittaire", "Capricorne")

On Error GoTo Erreur 'Si erreur de fichier
FF = FreeFile
'tu peux offir le fichier en Binary ou Input c'est ton choix
Open Path & Signe(Index) & ".txt" For Binary As #FF
Buffer = Space(LOF(FF)) 'réserve l'espace pour la lecture du fichier
Get #FF, , Buffer 'lit tout le fichier
Close
txt_File.Text = Buffer 'affiche le texte dans le text box de la form
cmdSigne(Index).Visible = False
Exit Sub

Erreur: 'gestion d'erreur
'affichage d'une msgbox avec la description de l'erreur et le numéro de l'erreur
MsgBox Err.Description & vbCrLf & Err.Number, vbCritical, ""
End Sub

À la prochaine
Bon voici, j'ai suivi un cours en informatique en 2004 et il y avait un module traitant de Visual Basic durant le cours de communication, soit 75 heures, j'ai reçu une formation très basic d'environ 15 hrs en VB et que je ne connaissais pas du tout. Après avoir fais des recherches, j'ai trouvé un code en html et j'ai tenté de le refaire en VB.

JE VOUS REMERCIE BCP, car je n'avais pas pensé au select case.
cs_ghuysmans99
Messages postés
3983
Date d'inscription
jeudi 14 juillet 2005
Statut
Membre
Dernière intervention
30 juin 2013
11 -
Excellente proposition de mdry ! Une p'tite màj de ta source en le citant ne serait pas superflu, s'il est d'accord, bien sûr ;)