begin process at 2012 05 27 14:58:30
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Maths

 > CONVERTISSEUR HEXAVIGÉSIMAL

CONVERTISSEUR HEXAVIGÉSIMAL


 Information sur la source

Note :
Aucune note
Catégorie :Maths Classé sous :conversion, hexavigesimale, base, 26, intervalle Niveau :Débutant Date de création :07/01/2012 Date de mise à jour :14/01/2012 22:27:50 Vu / téléchargé :1 545 / 82

Auteur : shaeks

Ecrire un message privé
Commentaire sur cette source (9)
Ajouter un commentaire et/ou une note

 Description

Cliquez pour voir la capture en taille normale
Ce convertisseur comme son nom l'indique permet d'effectuer l'incrémentation d'une combinaison de lettres alphabétiques, en lui indiquant l'intervalle d'ajout ou de soustraction. Exemple : ABXA + 3 = ABXD

Source

  • Private Sub Command1_Click()
  • Dim ta(1 To 4) As Variant 'Déclaration du tableau ta de 4 cases
  • Dim ia As Integer, Resultat As Long, Interval As Long
  • If Option1.Value = False And Option2.Value = False Then
  • MsgBox ("Veuillez choisir une des deux options disponibles")
  • Exit Sub
  • End If
  • ta(4) = Txtinval1.Text
  • ta(3) = Txtinval2.Text
  • ta(2) = Txtinval3.Text
  • ta(1) = Txtinval4.Text
  • For ia = 1 To 4
  • If ta(ia) = "" Then
  • MsgBox ("Veuillez saisir les lettres demandées")
  • Exit Sub
  • End If
  • Next ia
  • If TxtInVal5.Text = "" Then
  • MsgBox ("Veuillez saisir l'intervalle de conversion")
  • Exit Sub
  • End If
  • Interval = TxtInVal5.Text
  • If Interval <= 0 Or Interval > 456975 Then
  • MsgBox ("L'intervalle doit être un nombre entier compris entre 1 et 456975")
  • Exit Sub
  • End If
  • For ia = 1 To 4
  • ta(ia) = Asc(ta(ia)) - 65 'On convertit ici chaque lettre de l'alphabet en valeur numérique
  • Next ia
  • Resultat = ta(1) * 26 ^ 0 + ta(2) * 26 ^ 1 + ta(3) * 26 ^ 2 + ta(4) * 26 ^ 3 'c'est la formule de conversion hexavigésimale
  • If Option1.Value = True Then 'ici on ajoute l'intervalle numérique ou on le retranche selon le choix de l'utilisateur
  • Resultat = Resultat + Interval
  • Else
  • Resultat = Resultat - Interval
  • End If
  • If Resultat < 0 Then
  • Resultat = 0
  • End If
  • If Resultat > 456975 Then
  • Resultat = 456975
  • End If
  • ta(1) = Resultat Mod 26
  • ta(2) = ((Resultat - ta(1)) / 26) Mod 26
  • ta(3) = (((Resultat - ta(1)) / 26 - ta(2)) / 26) Mod 26
  • ta(4) = ((((Resultat - ta(1)) / 26 - ta(2)) / 26) - ta(3)) / 26
  • For ia = 1 To 4
  • ta(ia) = Chr$(ta(ia) + 65) 'On convertit les résultat numériques trouvés en lettres
  • Next ia
  • Label1.Caption = ta(1)
  • Label2.Caption = ta(2)
  • Label3.Caption = ta(3)
  • Label4.Caption = ta(4)
  • End Sub
  • Private Sub Option1_Click()
  • If Option2.Value = True Then
  • Option2.Value = False
  • End If
  • End Sub
  • Private Sub Option2_Click()
  • If Option1.Value = True Then
  • Option1.Value = False
  • End If
  • End Sub
  • Private Sub capital(keyascii As Integer)
  • If (keyascii >= 97) And (keyascii <= 122) Then
  • keyascii = keyascii - 32
  • End If
  • End Sub
  • Private Sub Txtinval1_change()
  • Txtinval1.Text = StrConv(Txtinval1.Text, vbUpperCase) 'Convertir la lettre saisie en majuscule
  • End Sub
  • Private Sub Txtinval2_KeyPress(keyascii As Integer)
  • Call capital(keyascii) 'Ou bien
  • End Sub
  • Private Sub Txtinval3_KeyPress(keyascii As Integer)
  • Call capital(keyascii)
  • End Sub
  • Private Sub Txtinval4_KeyPress(keyascii As Integer)
  • Call capital(keyascii)
  • End Sub
Private Sub Command1_Click()
Dim ta(1 To 4) As Variant 'Déclaration du tableau ta de 4 cases
Dim ia As Integer, Resultat As Long, Interval As Long
If Option1.Value = False And Option2.Value = False Then
    MsgBox ("Veuillez choisir une des deux options disponibles")
Exit Sub
End If
ta(4) = Txtinval1.Text
ta(3) = Txtinval2.Text
ta(2) = Txtinval3.Text
ta(1) = Txtinval4.Text
For ia = 1 To 4
    If ta(ia) = "" Then
        MsgBox ("Veuillez saisir les lettres demandées")
    Exit Sub
    End If
Next ia
If TxtInVal5.Text = "" Then
    MsgBox ("Veuillez saisir l'intervalle de conversion")
    Exit Sub
End If
Interval = TxtInVal5.Text
If Interval <= 0 Or Interval > 456975 Then
    MsgBox ("L'intervalle doit être un nombre entier compris entre 1 et 456975")
Exit Sub
End If
For ia = 1 To 4
    ta(ia) = Asc(ta(ia)) - 65 'On convertit ici chaque lettre de l'alphabet en valeur numérique
Next ia
Resultat = ta(1) * 26 ^ 0 + ta(2) * 26 ^ 1 + ta(3) * 26 ^ 2 + ta(4) * 26 ^ 3 'c'est la formule de conversion hexavigésimale
If Option1.Value = True Then 'ici on ajoute l'intervalle numérique ou on le retranche selon le choix de l'utilisateur
    Resultat = Resultat + Interval
Else
    Resultat = Resultat - Interval
End If
If Resultat < 0 Then
    Resultat = 0
End If
If Resultat > 456975 Then
    Resultat = 456975
End If
ta(1) = Resultat Mod 26
ta(2) = ((Resultat - ta(1)) / 26) Mod 26
ta(3) = (((Resultat - ta(1)) / 26 - ta(2)) / 26) Mod 26
ta(4) = ((((Resultat - ta(1)) / 26 - ta(2)) / 26) - ta(3)) / 26
For ia = 1 To 4
    ta(ia) = Chr$(ta(ia) + 65) 'On convertit les résultat numériques trouvés en lettres
Next ia
Label1.Caption = ta(1)
Label2.Caption = ta(2)
Label3.Caption = ta(3)
Label4.Caption = ta(4)
End Sub
Private Sub Option1_Click()
If Option2.Value = True Then
    Option2.Value = False
End If
End Sub
Private Sub Option2_Click()
If Option1.Value = True Then
    Option1.Value = False
End If
End Sub
Private Sub capital(keyascii As Integer)
If (keyascii >= 97) And (keyascii <= 122) Then
    keyascii = keyascii - 32
End If
End Sub
Private Sub Txtinval1_change()
Txtinval1.Text = StrConv(Txtinval1.Text, vbUpperCase)   'Convertir la lettre saisie en majuscule
End Sub
Private Sub Txtinval2_KeyPress(keyascii As Integer)
Call capital(keyascii)                          'Ou bien
End Sub
Private Sub Txtinval3_KeyPress(keyascii As Integer)
Call capital(keyascii)
End Sub
Private Sub Txtinval4_KeyPress(keyascii As Integer)
Call capital(keyascii)
End Sub

 Conclusion

J'utilise personnellement cet utilitaire dans le module de rapprochement bancaire de sage 1000. Car en désirant supprimer les écritures bancaires et comptables rapprochées d'une longue période comme une année par exemple, on se heurte à la limite d'affichage du logiciel de toutes les écritures. Il faudrait alors procéder par étapes. Un intervalle de 800 est souhaitable pour supprimer toutes les lettres de rapprochement en un seul clic.

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Historique

14 janvier 2012 22:27:50 :
Cette mise à jour concerne ce qui suit : - Une declaration explicite des variables utilisées (donc elles ont des noms plus clairs facilitant la lecture du code-source); - Plafonner les résultats à AAAA lors de la soustraction et à ZZZZ lors de l'ajout ; - J'ai changé les noms des contrôles aussi pour faciliter la compréhension du code ; - J'ai ajouté un code alternatif de conversion des lettres saisies en majuscules (à vous de choisir celui qui vous convient); - J'ai ajouté quelques messages d'erreur si jamais l'utilisateur oublie de remplir quelque chose.

 Sources du même auteur

Source avec Zip Source avec une capture HICHAM'S ARBORESCENCE V 1.0
Source avec Zip Source avec une capture DESKTOP WALLPAPER V 5.0

 Sources de la même categorie

Source avec Zip Source .NET (Dotnet) PERMUTATIONS DE CARACTÈRES par alpha5
Source avec Zip Source avec une capture PARTICIPATION À L'APPRENTISSAGE DE LECTURE DE L'HEURE (PENDU... par oulipan
Source avec Zip Source avec une capture TECHNIQUE TRADITIONNELLE DE LA DIVISION par oulipan
Source avec Zip Source avec une capture ENTRAÎNEMENT POUR EFFECTUER DES MULTIPLICATIONS EN COLONNES ... par oulipan
Source avec Zip Source avec une capture Source .NET (Dotnet) CRYPTOGRAPHIE AFFINE par Tigrou66

 Sources en rapport avec celle ci

Source avec Zip CLASSE DE CONVERSION INTER-BASES (BASE 2-36 VERS BASE 2-36) par violent_ken
Source avec Zip Source avec une capture Source .NET (Dotnet) CONVERTISSEUR UNIVERSEL EN BASES MULTIPLES par chewbaka62
Source avec Zip Source avec une capture Source .NET (Dotnet) CONVERSION DE BASE2 BASE10 BASE16 par alfr3d
Source avec Zip Source avec une capture TRADUCTEUR VB6.VBP EN VB5.VBP par joro
CONVERSION BASE 10 &LT;====&GT; BASE 256 (CODE ASCII) par lbs

Commentaires et avis

Commentaire de NHenry le 08/01/2012 01:56:17 administrateur CS

Bonsoir,

Je n'ai pas compris pourquoi tu n'utilises pas les fonctions intégrées pour convertir l'hexa en décimal ?

Val("&h7F0")
Hex$(...)

Commentaire de aubert007 le 08/01/2012 19:10:32

Pk tu n'utilise pas la fonction intégrais de la calculatrice intègrais à windows ?  

Commentaire de shaeks le 08/01/2012 19:48:21

@aubert007 : Je ne crois que c'est possible pour la base 26 de 4 caractères.

Commentaire de shaeks le 08/01/2012 19:50:37

Ici il s'agit de la base 26 : A=0 =====> Z=25 Donc que des lettres.

Commentaire de NHenry le 08/01/2012 20:38:27 administrateur CS

Bonsoir,

D'accord, ton exemple n'était pas claire, le code peut être confondu avec de l'hexa.

Quelques conseils :
- Nommes de manière explicite tes variables, à quoi sert var5 et var6 ?
- Nommes tes contrôles plus clairement, TxtInVal1 est plus claire que Text1 (Textbox Input Value 1)

Je pense que ça facilitera la lecture du code.

Commentaire de shaeks le 09/01/2012 01:08:28

@NHenry : Merci pour les conseils, je vais les prendre en compte dans ma prochaine mise à jour une fois que j'aurais le temps...Bon début de semaine :)

Commentaire de Renfield le 09/01/2012 07:35:44 administrateur CS

de mauvaise fois, en fin de week-end, NHenry ^^
le titre parle bien de HEXAVIGÉSIMAL (doit faire du bien au scrabble...)

concernant le code, passes par un ES_UPPER que de jouer avec ta procédure 'capital'

le code Option1_Click et Option2_Click est inutile si les optionButtons sont sur le meme conteneur

le caption statique assigné dans le Form_Load peut l'etre dans la fenetre des propriétés

ton code se réduit alors sacrément ^^

Je trouve enfin, que tu ne controle pas assez la saisie

Commentaire de ShayW le 09/01/2012 09:32:39

Bonjour
j'ai trouvé dans les archives
http://groupes.codes-sources.com/article-hexavigesimal-93296.aspx

Commentaire de shaeks le 14/01/2012 22:43:11

Bonjour,
Je viens d'actualiser le code, j'ai pris en considération quelques recommandations.
@Renfield : Pour moi la programmation n'est qu'un hobby, ce n'est pas du tout ma spécialité. Mais j'aime bien ce domaine peut être que je vais suivre une formation la dessus pour approfondir mes connaissances.

Amicalement,

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

conversion qbasic en VB6 [ par Jeanlouis ] Bonjour,J'aimerai savoir comment convertir ce programme qbasic en vb6?ClsPrint " choisir le programme de conversion qui vous convient"Print " ----- conversion dossier en fichier, ou autre solution ?? [ par ralf19b3 ] voila je suis actuellement en train de creer une base de donne et je souhaiterait y integrer une fonction de restauration de ma base, ce qui voudrer d conversion Base Access vers VB ????? [ par stoomm ] Quelqu'un connait un bon logiciel pour convertir une base ACCESS ou au moins les formulaires et les modules vers VBMerci. A+.Stoomm [Access 2.0]Conversion [ par fada09 ] Salut,J'ai un ENOOORME problème.J'ai réalisé une base de données sous Access2000 et le problème est que l'enterprise ne possède que Access 2.0 sur les conversion d'un réel inférieur à 1 en base 2 [ par spizzou ] " Une source &#233;met&nbsp;&nbsp; n&nbsp; &nbsp;symboles S1, S2, ... , Sn avec les probabilit&#233;es respectives P1, P2, ... , Pn class&#233;es dans conversion access03-->97 ?? [ par antoine_ferard ] Serait-il possible, via le code, de convertir une base Access2003 vers une base Access97 ? Conversion d'une base sql vers mysql [ par mryassine ] Salut a vous tous Pouvez vous m'indiquer s'il vous plait comment convertir une base sql vers mysql? Merci d'avance. Yassine conversion base de données 2007 en access 2000 [ par elnico16 ] bonjour, j'ai une base de données que j'ai converti en access2007 qui etait sous 97 et que je dois reconvertir en version antérieure sous access2000 m Erreur de connexion base de données oracle [ par kijx ] Bonjour , J'ai un petit soucis au niveau de la connexion a la base de donnée , un message d'erreur s'affiche : [code=autre]Une erreur s'est produite insertion dans base de données [ par kaoutar90 ] Bonjour !! SVP je veux insérer dans un champs dans la base de données à partir d'une requête pouvez-vous m'indiquez comment écrire cette requête Merc


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,842 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales