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 caractère en décimal


Sujet :

Langage Delphi

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    189
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 189
    Points : 65
    Points
    65
    Par défaut Conversion caractère en décimal
    Bonjour !

    J'aurai aimé votre aide pour savoir comment récuperer la valeur décimale correspondant à un caractere, et ce à partir d'un caractere présent dans une TEdit.
    Pour être clair :

    je récupere un caractere d'une TEdit comme ceci :

    (avec un caractere tapé,ici j'ai pris pour éxemple "A" mais il faut que sa marche pour n'importe quel caractere).

    J'aimerai donc savoir comment récuperer la valeur de mon caractere tel que :

    Var
    c1 : Integer
    ...
    c15 : Integer

    il faut donc que le caractere récupéré (ici le 1er, de valeur A(mon éxemple)) me soit retourné sous sa forme décimale (car A = 41 en héxa et donc 65) et qu'il soit affecté à c1.


    Une idée sur comment faire sa ?
    Merci !

  2. #2
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 951
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 951
    Points : 5 671
    Points
    5 671
    Par défaut
    Jao,

    C'est du Pascal basique de chez basique, mais alors vraiment basique.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    ...
    var
      c : char;
      n : integer;
    ...
      c := 'A';
      n := Ord(c); { n contient la valeur que tu cherches }
    ...

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    189
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 189
    Points : 65
    Points
    65
    Par défaut
    Le probleme c'est que si je fais comme sa je vais devoir me taper les déclarations de tous les caracteres xD, hors j'aurai aimé que ce soit le contenu de mon edit1.text[] qui automatiquement détectera le caractere présent dedans .

    Je vais écrire un gros n'importe quoi, mais c'est comme sa que je pensais que sa se présentait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    Var 
    c1 : integer //caractere 1 (edit1.text[1] valeur décimale du caractere)
    c2 : integer //caractere 2 (edit1.text[2] valeur décimale du caractere)
    ...
    c15:integer // caractere 15(edit1.text[15)valeur décimale du caractere)
     
     
     
    proc edit1.change
    begin
    analiser ce qui est tapé //Imaginons que l'utilisateur tape "Marchmalo"
    obtenir les caracteres selon leurs positions //comme chr[1]=M , chr[2]=a ...
    une fois obtenu, les convertir Chr[1]=M->valeurdécimale->c1
                                            Chr[2]=a->valeurdécimale->c2 //les conversions en décimal seraient donc faites avec "ord(caractere détécté)"
     
    //ensuite mon code ....
    If edit1.text[1]=c1 then
    action;
    end;
    Ce que je n'arrive donc pas à comprendre c'est comment détecter le caractere dans [] pour pouvoir le convertir .

    Désolé si je ne suis pas clair ^^, merci d'avance !

    Edit:Faut que j'arrete l'alcool mdrrrr !!! Je n'avais pas vu que tu avais déclarer c : char...

    je vais éssayer de ce pas xDDD
    Mouarf comme dirai l'autre ...

    Edit2 : Par contre, comment faire pour afficher la valeur trouvé dans un label ? (vu que la valeur retournée est un integer, et que le label gere les string .

  4. #4
    Expert éminent sénior

    Avatar de sjrd
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Juin 2004
    Messages
    4 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Suisse

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2004
    Messages : 4 517
    Points : 10 154
    Points
    10 154
    Par défaut
    Euh honnêtement tu te perds dans des trucs bêtes. Et déjà le fait que du déclares c1 à c15 montre que tu es mal barré. Pour ça on fait des tableaux :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    var C : array[1..15] of integer;
        I : integer;
        Text : string;
    begin
      Text := Edit1.Text;
      Assert(Length(Text) <= 15);
      for I := 1 to Length(Text) do
        C[I] := Ord(Text[I]);
    end;
    Maintenant avec un tableau de byte c'est encore plus facile :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    var C : array[1..15] of Byte;
        Text : string;
    begin
      Text := Edit1.Text;
      Assert(Length(Text) <= 15);
      Move(Text[1], C[1], Length(Text));
    end;
    end;

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    189
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 189
    Points : 65
    Points
    65
    Par défaut
    Merci !
    Oui je me perds assez facilement, je débute et je suis comme qui dirai, pas passé par la case départ

  6. #6
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 951
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 951
    Points : 5 671
    Points
    5 671
    Par défaut
    Hai,
    Citation Envoyé par devoluti0n
    Merci !
    Oui je me perds assez facilement, je débute et je suis comme qui dirai, pas passé par la case départ
    Alors vas-y, à cette case départ.

    En bidouillant comme tu le fais, non seulement tu perds du temps, mais en plus tu prends de mauvaises habitudes, aussi bien au niveau du codage qu'au niveau réflexion : tu t'égares dans des problèmes inexistants, parce que tu cherches à courir avant d'avoir appris à marcher.

    Comme pour tout travail, il faut commencer par le début : apprendre les bases avant d'essayer de recréer Windows tout seul.

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

Discussions similaires

  1. Conversion d'un caractère en décimal
    Par Nartek dans le forum C
    Réponses: 4
    Dernier message: 27/05/2014, 12h31
  2. Réponses: 8
    Dernier message: 27/05/2010, 15h59
  3. conversion caractère spéciaux
    Par Henry9 dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 25/07/2006, 02h41
  4. Conversion d'un décimal en entier
    Par _developpeur_ dans le forum Access
    Réponses: 1
    Dernier message: 12/01/2006, 16h00
  5. Conversion caractères accentué
    Par Goliath722 dans le forum C++
    Réponses: 1
    Dernier message: 28/12/2004, 01h41

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