Ajouter 1 à une chaine de caractères? [Résolu]

djdiabolik 56 Messages postés mardi 23 avril 2002Date d'inscription 20 avril 2007 Dernière intervention - 9 août 2006 à 12:47 - Dernière réponse : djdiabolik 56 Messages postés mardi 23 avril 2002Date d'inscription 20 avril 2007 Dernière intervention
- 9 août 2006 à 16:00
Voilà mon problème est simple, mais plutôt que de réinventer la roue, je voudrais savoir si quelqu'un a déjà résolu ce genre de problèmatique. Si non, je ferai mon propre code...

Voici donc :

J'ai une chaine codé sur 3 caractères du type 'XXX'.
Je veux faire une fonction qui récupère en paramètre cette chaine, pour sortir la chaine qui suit dans l'ordre alphabétique.

Quelques exemples :

Entrée :'AAA', Sortie 'AAB'
Entrée 'AFA', Sortie 'AFB'
Avec ces règles de gestion quand on arrive en bout d'alphabat pour l'un des trois caractères de la chaine.
1) Si on est à Z alors on incrémente le caractère à gauche et le caractère entré à Z devient A (ex : Entrée 'AAZ', Sortie 'ABA')
1) Si on est à 'ZZZ' alors on passe à 'AAA'

Voilà, si qqn a déjà fait ceci, merci de m'indiquer une source, perso je n'en ai pas trouvé, sinon je ferai une zoli fonction pour ça.

Merci d'avance

---------------------------------------------------------------------------

Pourquoi faire simple quand on peut faire compliqué?????That is the question
Afficher la suite 

Votre réponse

2 réponses

Meilleure réponse
jrivet 7401 Messages postés mercredi 23 avril 2003Date d'inscription 6 avril 2012 Dernière intervention - 9 août 2006 à 14:52
3
Merci
Salut,


Le code qui suit est en VB6 mais tu peux l'adapter.








Private Function GetNextChaine(StrChaine As String) As String 

'Tabelau contenant les code ascii des trois caracteres
Dim AscC(0 To 2) As Integer 
'Variable permettant de savoir si l 'on doit arreter la boucle
Dim StopBoucle As Boolean 
'Variable de boucle
Dim i As Integer 
     'Pour etre sur de travailler avec des majuscules
    StrChaine = Ucase (StrChaine)
    For i  = 1 To 3 
        'Recuperation des codes ascii des trois caractere
        AscC(i - 1) =   Asc (Mid(StrChaine, i, 1)) 
    Next 

    'Boucle en comencant du dernier code
    For i  = 2 To 0 Step -1 
        'Si on doit arreter la boucle alors on sort
        If StopBoucle Then Exit For 
        'On ajoute 1 au code ascii (lettre suivante)
        AscC(i) = AscC(i) + 1 
        'Si le code obtenu est 91 (asc("Z") + 1)
        If AscC(i) > vbKeyZ Then 
            'Le code redeviens 65 (asc("A"))
            AscC(i) = vbKeyA 
        Else 
            'Sinon on arrete la boucle car aucune autre
            'operation ne doit etre faite
            StopBoucle = True 
        End If 
    Next 

    GetNextChaine = vbNullString 

    For i = 0 To 2 
        'Reforme la chaie de sortie
        GetNextChaine = GetNextChaine & Chr(AscC(i)) 
    Next 
End Function 

 







<small> Coloration syntaxique automatique [AFCK]</small>

       















@+, Julien
Pensez:

Merci jrivet 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 97 internautes ce mois-ci

Commenter la réponse de jrivet
djdiabolik 56 Messages postés mardi 23 avril 2002Date d'inscription 20 avril 2007 Dernière intervention - 9 août 2006 à 16:00
0
Merci
Merci beaucoup pour ton aide. Je vais adapter ça vite fait bien fait pour mon application.


Je posterai quand j'aurai terminé.


 


Encore merci et à plus !


 


--------------------------------------------------------

Pourquoi faire simple quand on peut faire compliqué?????That is the question
Commenter la réponse de djdiabolik

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.