Bonjour,
qq1 peut me montrer ce code en Delphi, svp? :
Merci. :lol:Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14 #include<stdio.h> #include<conio.h> main() { int i=0; do { printf ("Valeur ASCII %c est %d\n",i,i); i++; } while (i<=255); getch(); }
Version imprimable
Bonjour,
qq1 peut me montrer ce code en Delphi, svp? :
Merci. :lol:Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14 #include<stdio.h> #include<conio.h> main() { int i=0; do { printf ("Valeur ASCII %c est %d\n",i,i); i++; } while (i<=255); getch(); }
C'est 1 boucle qui affiche les nb de 0 à 255, et leur équivalent caractère (48 => "0", 49 => '1', etc...)
En fin de boucle, le prog (mode console) attend une action clavier.
Bonjour,
Juste une petite question
Tu mets un %c et %d pour les valeurs de i
N'y a t'il pas une redondance ?
Imaginons que tu poses un composant TButton dont le nom est le suivant : Bouton (propriété Name à "Bouton") et un composant TMemo dont le nom est : Zone (propriété Name à "Zone") :
Dans l'évènement OnClick de Bouton
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 procedure TForm1.BoutonClick(Sender: TObject); var i : integer; begin // barres de défilement Zone.ScrollBars := ssVertical; // on efface la zone Zone.lines.clear; // on parcourt tous les caractères for i:=0 to 255 do begin Zone.lines.add('Valeur ASCII '+Chr(i)+' est '+IntToStr(Ord(i))); end; end;
Ou alors, tu place un Label et dans l'evenement OnLoad de ta fenetre:
Code:
1
2
3
4
5
6
7
8
9
10 procedure TForm1.OnLoad(Sender: TObject); var i : integer; begin // on parcourt tous les caractères for i:=0 to 255 do begin Debug.Print 'Valeur ASCII '+Chr(i)+' est '+IntToStr(Ord(i))); end; end;
Yes, j'ai essayé la solution de sillycoder, ça marche très bien, mais je voudrais comprendre la signification de :
Chr c'est quoi et Ord c'est quoi?Code:Chr(i)+' est '+IntToStr(Ord(i))
Merci d'avance. :roll:
Salut
Tu peux t'en passer, Ord(X) donne la valeur ordinale i.e le rang de la valeur X passée en paramètre définie à partir de son type. Dans le cas des Integer, cela ne présente pas beaucoup d'intérêt. Tu peux donc écrire :
Typer la variable i en char aurait été plus approprié ici je pense :Code:
1
2 Debug.Print('Valeur ASCII '+Chr(i)+' est '+IntToStr(i));
Là, l'utilisation de Ord est nécessaire, on convertit un caractère ne son équivalent numérique.Code:
1
2
3
4
5
6
7
8
9
10
11 procedure TForm1.OnLoad(Sender: TObject); var i : Char; begin // on parcourt tous les caractères for i:= Low(Char) to High(Char) do begin Debug.Print ('Valeur ASCII '+i+' est '+IntToStr(Ord(i))); end; end;
Par contre l'événement OnLoad me laisse perplexe, doù vient-il (Delphi 2005)?
cordialement
e-ric
Chr : permet de convertir un code ASCII en un caractère.
exemple chr(65) donne 'A'
chr(49) donne '0'
(enfin, je pense, je ne suis pas sur pour ces exemples)
Ord : fait l'iverse : à partir d'un caractère, ou de toute valeur ordinale, donne son rang.
pour un caractère, elle retourne son code ASCII, pour un element d'une énumération, elle retourne son rang dans l'ensemble.
Pour ton exemple, ord(i) donne i, donc, tu peux la remplacer par :
Code:Chr(i)+' est '+IntToStr(i)
Effectivement :wink: Le code ASCII de '0' c'est 48... :wink:Citation:
Envoyé par Modjo
Tu pourrais traduire de la même façon:
Code:
1
2
3
4
5
6 var i:integer; begin for i:=0 to 255 do WriteLn(Format('Valeur ASCII %c est %d',[Chr(i),i])); end.
Deformation professionelle. J'ai confondu entre VB et Delphi. Tu remplaces par OnShow ou OnCreate.Citation:
Envoyé par e-ric
Excellent cours, je vous remercie messieurs! :D :bravo: :chin: