Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3084 connectés 

 


Dernière réponse
Sujet : [Delphi] Conversion ASCII
KrOuTe :jap:  :jap:

Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
KrOuTe :jap:  :jap:
antp

Code :
  1. procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
  2. begin
  3.   if not (Key in ['0'..'9']) then
  4.     Key := #0;
  5. end;

KrOuTe Comment on fait ? :D
os2 tu n'as qu'a utiliser l'évènement keypress et ne permettre de tapé seulement des chiffres, c'est très aisé à faire...
antp if chaine[i] < '0' or chaine[i] > '9' then
 
le compilateur voit
 
if chaine[i]< ('0' or chaine[i]) > '9' then
ou un truc du genre
 
faut faire
 
if (chaine[i] < '0') or (chaine[i] > '9') then
 
et comparer un caractère à '57' (une chaine) ça risque pas de faire ce que tu veux :D
KrOuTe Ok le truc marche mais seulement si je n'utilise pas la deuxieme partie (And Chaine[i]>'57') paske qd je fait ca le compilateur me dit que l'operateur est invalide poue ce type d'opérande.J'ai essayé avec un else if mais la ca marche plus du tout ....
antp

Zion a écrit a écrit :

Pourquoi caster un byte en Integer maintenant?  :pt1cable:  




 
bhen dans le cas où tu dois le récupérer comme un integer :heink:
genre les onkeypress/onkeydown ou tu mélanges des char, des word et des constantes...

KrOuTe C cool ca me plait !
zion Pourquoi caster un byte en Integer maintenant?  :pt1cable:  
 
(Fait pas attention Kroute, on fait de l'ambiance comme on peut :p)
antp bah oui 48 c'est mal, mais bon y a des cas où c'est utile
puis Ord(machin) c'est plus court à écrire que Integer(machin) :na:
zion

antp a écrit a écrit :

:heink:
bhen si
 
if chaine[i] < 48 ca passe pas
if Ord(chaine[i]) < 48 ca passe




 
benh déjà 48 c'est mal, si tu veux compiler ton truc pour .NET, admettons qu'ils utilise de l'EBCDIC (non je déconne, c juste pour l'exemple), ton 48 marchera plus.
 
De plus l'ORD est inutile, suffit de caster  :sarcastic:

antp

Zion a écrit a écrit :

 
Ca sert à rien cte fonction  :D  




 
:heink:
bhen si
 
if chaine[i] < 48 ca passe pas
if Ord(chaine[i]) < 48 ca passe
 
mais c'est vrai que ta solution est meilleure ;)

KrOuTe Ok en fait j'avais encore pas bien capté maintenant je pense avoir capté et il semble que ca marche merci  :jap:
zion

antp a écrit a écrit :

Ord(chaine[1]) te renvoie un entier ayant la valeur du 1er caractere par ex, ca te permet de le comparer à un autre entier ;)




 
 :heink:  
 
Ca sert à rien cte fonction  :D

zion :heink:  
 
Je viens de te dire de faire  
 
chaine[i]<'1'
 
plutot que 48
 
je le répète, le pascal est un langage fortement typé
 
Soit tu castes byte(chaine[i]) soit char(48)
antp Ord(chaine[1]) te renvoie un entier ayant la valeur du 1er caractere par ex, ca te permet de le comparer à un autre entier ;)
KrOuTe Ben ouais ca y me semble avoir compris,mais ca me permet pas de comparer avec la valeur ASCII du caractere
zion Le pascal est un langage typé, donc un char n'est pas un byte, et inversément, sauf si tu le caste
 
char(48), ou '1' c'est pareil, mais 48 c'est pas un char, c'est un byte
 
 :hello:
KrOuTe Je crois que j'ai pas tout a fait capté encore  :) ...
Comme je veux que l'utilisateur ne saisisse que des chiffres je compare la valeur ASCII du caractère en cours avec la valeur  ASCII des chifre 1,2,3,4...
Je fais (pour reprendre l'exemple) : if Chaine[i] < 48 And  
Chaine[i] > 57 then ... Mais le compilateur me dit que les types sont incompatibles,les valeurs ASCII c pas des Int ?
KrOuTe A ok merci j'avais pas kapté ca  :) j'suis un petit peu débutant aussi alors...
antp la contenu des caractère c'est leur valeur ASCII...
chaine[i] = code ASCII du caractère à la position i (pour i allant de 1 à longueur)
KrOuTe Salut ,est il possible en Delphi de convertir des caractères en leur valeur ASCII ? Paske en fait je veux gérer une saisie utilisateur et il faudrait que seulement des chiffres soient saisis...

Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)