Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 5 sur 5
  1. #1
    Membre du Club
    Homme Profil pro Antonio
    Ingénieur commercial
    Inscrit en
    février 2012
    Messages
    62
    Détails du profil
    Informations personnelles :
    Nom : Homme Antonio
    Localisation : Guinée équ.

    Informations professionnelles :
    Activité : Ingénieur commercial
    Secteur : Finance

    Informations forums :
    Inscription : février 2012
    Messages : 62
    Points : 40
    Points
    40

    Par défaut Incrémenter les lettres de l'alphabet

    Bonjour à tous , j'aimerais incrémenter les lettres de l'alphabet mais avec mon code pas de suite.
    A la 27 ieme opération c'est-à-dire après Z , je n'ai pas le résultat que je recherche.
    J'aimerais avoir cette suite A,B,....Z,AA,AB...,BA,BB, ....

    Mon code
    Code :
    1
    2
    j est un caractère="A"
    j=Caract(Asc(j)+1)
    Merci

  2. #2
    Expert Confirmé
    Avatar de frenchsting
    Homme Profil pro Claude
    Développeur informatique
    Inscrit en
    juin 2003
    Messages
    1 792
    Détails du profil
    Informations personnelles :
    Nom : Homme Claude
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : juin 2003
    Messages : 1 792
    Points : 2 642
    Points
    2 642

    Par défaut

    Tu dois le gérer toi même...
    si tu as 2 caractères, tu fais un
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    procedure incremente(unelettre) 
    u est une chaine = unelettre
    
    si u="Z" alors
     u = "A" 
     d = "A"
     j = d+u
    sinon 
     j = Caract(Asc(j)+1)
    fin
    Tu emballes ça dans une boucle :
    Code :
    1
    2
    3
    4
    t=j
    pour i = 1 _a_ taille(j)
     j += incremente(t[[i]])
    fin
    Ce code ne fonctione pas en l'état, mais c'est une base : tu dois gérer les retenues...
    Commencez toujours par là : et puis n'hésitez à passer par là : ou par un autre moteur de recherche...
    Pas de question par MP s'il vous plait. Le forum est fait pour cela...

    Make it real not fantasy

  3. #3
    Membre Expert
    Homme Profil pro
    Inscrit en
    octobre 2007
    Messages
    554
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : octobre 2007
    Messages : 554
    Points : 1 171
    Points
    1 171

    Par défaut

    Bonjour,

    A la volée et sachant que Asc("A") = 65, je proposerais :

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    Début, Résultat sont des chaînes
    I, J, , NombreDeCharVoulu sont des entiers
    
    Début = "" //pas nécessaire, mais par sécurité
    Résultat = "" //pas nécessaire
    RangDuCaractère = 1
    
    //Saisir le nombre de caractères voulus, càd la longueur finale de la chaîne
    
    TANTQUE RangDuChar <= NombreDeCharVoulu
       Pour I = 1 A 26
          Pour J = 1 A 26
             Résultat = Début + Caract(64 + J)
          FIN
          Début = Début + Caract(64 + I)
       FIN
       RangDuChar ++
    FIN
    Code non testé.

    Bon travail

    Hemgé

  4. #4
    Membre à l'essai
    Homme Profil pro Thomas
    Développeur informatique
    Inscrit en
    novembre 2007
    Messages
    14
    Détails du profil
    Informations personnelles :
    Nom : Homme Thomas
    Âge : 28
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : novembre 2007
    Messages : 14
    Points : 20
    Points
    20

    Par défaut

    J'avais codé ça un jour ...

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    PROCEDURE gpIncrementerLettre(sTexte est une chaîne)
    
    nTaille est un entier = Taille(sTexte)
    i est un entier = nTaille
    nbDeA est un entier = 0
    
    POUR i = nTaille A 1 PAS -1
    	SI sTexte[[i]] = "Z" ALORS
    		sTexte[[i]] = "A"	
    		nbDeA++
    	SINON
    		sTexte[[i]] = Caract(Asc(sTexte[[i]]) + 1)
    		SORTIR
    	FIN
    FIN
    
    SI nbDeA = nTaille ALORS sTexte = sTexte + "A"
    
    RENVOYER sTexte

    Exemple :
    gpIncrementerLettre("AZA") // AZB
    gpIncrementerLettre("ABZ") // ACA
    gpIncrementerLettre("AZZ") // BAA
    gpIncrementerLettre("ZZZ") // AAAA

  5. #5
    Membre du Club
    Homme Profil pro Antonio
    Ingénieur commercial
    Inscrit en
    février 2012
    Messages
    62
    Détails du profil
    Informations personnelles :
    Nom : Homme Antonio
    Localisation : Guinée équ.

    Informations professionnelles :
    Activité : Ingénieur commercial
    Secteur : Finance

    Informations forums :
    Inscription : février 2012
    Messages : 62
    Points : 40
    Points
    40

    Par défaut

    C'est superbe !!!!
    Merci à tous.

+ Répondre à la discussion
Cette discussion est résolue.

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •