IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Delphi Discussion :

Conversion d'un entier en caractères


Sujet :

Langage Delphi

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 50
    Points : 32
    Points
    32
    Par défaut Conversion d'un entier en caractères
    Bonjour,

    Je recherche une procédure qui me converti un entier en caractère :
    1 -> A
    2 -> B
    ...
    27 -> AA
    28 -> AB

    Pour le moment j'utilise la fonction Chr() en faisant un incrément de 65 mais elle est limitée.
    Avez vous une autre solution ?

  2. #2
    Membre averti
    Avatar de Hauwke
    Inscrit en
    Septembre 2005
    Messages
    329
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 329
    Points : 400
    Points
    400
    Par défaut
    Bonjour,
    En cherchant dans la F.A.Q., peut être...
    Cordialement,
    Hauwke

  3. #3
    Membre confirmé
    Avatar de OutOfRange
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    533
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 533
    Points : 474
    Points
    474
    Par défaut
    Bonjour
    j'utilise la fonction Chr() en faisant un incrément de 65
    Pourrais-tu préciser et montrer ton code
    Je ne comprends pas bien comment in incrément de 65 peut donner le résultat indiqué
    Chr(65)='A', mais je ne vois pas bien le rapport :
    ???

  4. #4
    Membre expert
    Avatar de e-ric
    Homme Profil pro
    Apprenti chat, bienfaiteur de tritons et autres bestioles
    Inscrit en
    Mars 2002
    Messages
    1 561
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Apprenti chat, bienfaiteur de tritons et autres bestioles

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 561
    Points : 3 951
    Points
    3 951
    Par défaut
    Salut

    Assez parloté !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    function ToAA(Nombre: integer) : string;
    const
      ValBase = 26;
    var
      Q, R: integer;
    begin
      repeat
        Q := (Nombre-1) div ValBase;
        R := (Nombre-1) mod ValBase;
        Result := Chr(Ord('A')+R) + Result;
        Nombre := Q;
      until Q = 0;
    End;
    devrait te tirer d'affaire, il n'y a pas de possibilité directement dans Delphi à ma connaissance car c'est un calcul trop exotique.

    Rem : Il s'agit juste d'un changement de base de numération.

    cdlt

    e-ric

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 50
    Points : 32
    Points
    32
    Par défaut
    Impecable, merci beaucoup

    Je me permet juste de conseiller d'initialiser la valeur de Result à '' au début de la fonction.

    Pour le Chr(65) voila mon raisonnement :
    je veux
    1 -> A <=> en ASCII 64 + 1
    2 -> B <=> en ASCII 64 + 2
    mais je bloquais à Z et ca me faisait '['

  6. #6
    Membre expert
    Avatar de e-ric
    Homme Profil pro
    Apprenti chat, bienfaiteur de tritons et autres bestioles
    Inscrit en
    Mars 2002
    Messages
    1 561
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Apprenti chat, bienfaiteur de tritons et autres bestioles

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 561
    Points : 3 951
    Points
    3 951
    Par défaut
    Salut

    C'est vrai, j'avais oublié mais cela ne gênait pas.

    cdlt

    e-ric

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 50
    Points : 32
    Points
    32
    Par défaut
    Si ca doit gêner car en appelant deux fois de suite cette fonction, la valeur de Result n'était pas bonne :
    toAA(1) = A;
    toAA(2) = BA;

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

Discussions similaires

  1. Conversion d'un entier en chaîne de caractères
    Par Muska17 dans le forum Algorithmes et structures de données
    Réponses: 4
    Dernier message: 06/08/2013, 14h17
  2. conversion d'une chaine de caractére en entier
    Par moooona dans le forum Débuter avec Java
    Réponses: 1
    Dernier message: 30/05/2008, 09h41
  3. Conversion Entier vers Caractère.
    Par -= Cobra =- dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 04/12/2006, 11h05
  4. conversion d'une chaine de caractère en int
    Par greg13 dans le forum C++
    Réponses: 3
    Dernier message: 25/08/2005, 16h18
  5. conversion d'un entier en ASCII
    Par bischof dans le forum Langage
    Réponses: 6
    Dernier message: 08/07/2005, 13h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo