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

Signaler
Messages postés
56
Date d'inscription
mardi 23 avril 2002
Statut
Membre
Dernière intervention
20 avril 2007
-
Messages postés
56
Date d'inscription
mardi 23 avril 2002
Statut
Membre
Dernière intervention
20 avril 2007
-
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

2 réponses

Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
48
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:
Messages postés
56
Date d'inscription
mardi 23 avril 2002
Statut
Membre
Dernière intervention
20 avril 2007

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