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 :

Equivalent en Delphi


Sujet :

Langage Delphi

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 21
    Points : 15
    Points
    15
    Par défaut Equivalent en Delphi
    Bonjour,
    qq1 peut me montrer ce code en Delphi, svp? :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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();
    }
    Merci.

  2. #2
    Expert éminent
    Avatar de qi130
    Homme Profil pro
    Expert Processus IT
    Inscrit en
    Mars 2003
    Messages
    3 911
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Expert Processus IT
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 911
    Points : 6 032
    Points
    6 032
    Par défaut
    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.
    "Il n'y a pas de bonnes réponses à une mauvaise question." (M. Godet)
    -----------------------
    Pensez à cloturer votre sujet - Aucune réponse aux sollicitations techniques par MP
    Usus magister est optimus

  3. #3
    Membre actif Avatar de marsupilami34
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    575
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 575
    Points : 262
    Points
    262
    Par défaut
    Bonjour,

    Juste une petite question
    Tu mets un %c et %d pour les valeurs de i
    N'y a t'il pas une redondance ?

  4. #4
    Membre régulier
    Homme Profil pro
    Inscrit en
    Février 2005
    Messages
    100
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Secteur : Santé

    Informations forums :
    Inscription : Février 2005
    Messages : 100
    Points : 113
    Points
    113
    Par défaut
    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 : 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
     
    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;

  5. #5
    Membre régulier
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    111
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 111
    Points : 119
    Points
    119
    Par défaut
    Ou alors, tu place un Label et dans l'evenement OnLoad de ta fenetre:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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;
    Un petit nuage blanc dans un ciel tout bleu, c'est le paradis. Un petit message blanc dans un ecran tout bleu, c'est l'enfer.

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 21
    Points : 15
    Points
    15
    Par défaut
    Yes, j'ai essayé la solution de sillycoder, ça marche très bien, mais je voudrais comprendre la signification de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Chr(i)+' est '+IntToStr(Ord(i))
    Chr c'est quoi et Ord c'est quoi?
    Merci d'avance.

  7. #7
    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

    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 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Debug.Print('Valeur ASCII '+Chr(i)+' est '+IntToStr(i));
    Typer la variable i en char aurait été plus approprié ici je pense :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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;
    Là, l'utilisation de Ord est nécessaire, on convertit un caractère ne son équivalent numérique.

    Par contre l'événement OnLoad me laisse perplexe, doù vient-il (Delphi 2005)?

    cordialement

    e-ric

    M E N S . A G I T A T . M O L E M
    Debian 64bit, Lazarus + FPC -> n'oubliez pas de consulter les FAQ Delphi et Pascal ainsi que les cours et tutoriels Delphi et Pascal

    "La théorie, c'est quand on sait tout, mais que rien ne marche. La pratique, c'est quand tout marche, mais qu'on ne sait pas pourquoi. En informatique, la théorie et la pratique sont réunies: rien ne marche et on ne sait pas pourquoi!".
    Mais Emmanuel Kant disait aussi : "La théorie sans la pratique est inutile, la pratique sans la théorie est aveugle."

  8. #8
    Expert éminent
    Avatar de djo.mos
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    4 666
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 666
    Points : 7 679
    Points
    7 679
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    Chr(i)+' est '+IntToStr(i)

  9. #9
    Rédacteur
    Avatar de Pedro
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    5 411
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 5 411
    Points : 8 078
    Points
    8 078
    Par défaut
    Citation Envoyé par Modjo
    (enfin, je pense, je ne suis pas sur pour ces exemples)
    Effectivement Le code ASCII de '0' c'est 48...

    Tu pourrais traduire de la même façon:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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.
    Pedro
    Aucune réponse aux sollicitations techniques par MP

    Faut pas attendre d'en avoir besoin pour s'en servir... (Lucien Stéphane)

    Les pages Source C'est bon. Mangez-en!
    Le défi Delphi
    Règles du forum - FAQ Delphi - Pensez au chtit
    Aéroclub Bastia Saint-Exupéry

  10. #10
    Membre régulier
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    111
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 111
    Points : 119
    Points
    119
    Par défaut
    Citation Envoyé par e-ric
    Par contre l'événement OnLoad me laisse perplexe, doù vient-il (Delphi 2005)?
    Deformation professionelle. J'ai confondu entre VB et Delphi. Tu remplaces par OnShow ou OnCreate.
    Un petit nuage blanc dans un ciel tout bleu, c'est le paradis. Un petit message blanc dans un ecran tout bleu, c'est l'enfer.

  11. #11
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 21
    Points : 15
    Points
    15
    Par défaut
    Excellent cours, je vous remercie messieurs!

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

Discussions similaires

  1. Equivalent en delphi de preg_match_all en php
    Par sp2308 dans le forum Débuter
    Réponses: 2
    Dernier message: 30/12/2007, 21h54
  2. Equivalent en Delphi d'un programme non RAD
    Par Alcatîz dans le forum Delphi
    Réponses: 7
    Dernier message: 13/09/2006, 03h43
  3. [Mac] Equivalents de Delphi, Pascal, C, Java, etc ?
    Par cyberjoac dans le forum Langages de programmation
    Réponses: 3
    Dernier message: 02/04/2006, 12h26
  4. Equivalent C -> Delphi des types de variables
    Par jobe dans le forum Langage
    Réponses: 3
    Dernier message: 13/09/2005, 23h21
  5. Réponses: 2
    Dernier message: 11/07/2003, 18h24

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