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

Pascal Discussion :

Contrôler les entrées utilisateur


Sujet :

Pascal

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    143
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 143
    Points : 64
    Points
    64
    Par défaut Contrôler les entrées utilisateur
    Bonsoir,
    Je voudrais contrôler les entrées des utilisateurs en limitant celles-ci à un caractère chacune. Chacune de ces entrées introduit un caractère alphabétique dans un tableau. Comment faire pour que l'utilisateur ne puisse taper au clavier plus d'une lettre ?
    Je vous remercie.

  2. #2
    Responsable Pascal, Lazarus et Assembleur


    Avatar de Alcatîz
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mars 2003
    Messages
    7 949
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2003
    Messages : 7 949
    Points : 59 619
    Points
    59 619
    Billets dans le blog
    2
    Par défaut
    Bonjour !

    La fonction ReadKey renvoie un seul caractère.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    143
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 143
    Points : 64
    Points
    64
    Par défaut
    Merci pour votre réponse. Comment utiliser Readkey ?

    Voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    i := 1 ;
    for i := 1 to 8 do
        begin
        write('Lettre ',i, ': ');
        readln(tablo[i])
    ;

  4. #4
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 949
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 949
    Points : 5 663
    Points
    5 663
    Par défaut
    Fio,
    Citation Envoyé par dimi2 Voir le message
    Merci pour votre réponse. Comment utiliser Readkey ?

    Voici mon code :

    i := 1 ;
    for i := 1 to 8 do
    begin
    write('Lettre ',i, ': ');
    readln(tablo[i]);


    J'ai fait une recherche de ce mot sur internet, je l'ai vu utilisé comme ça, mais cela amène une erreur :

    i := 1 ;
    for i := 1 to 8 do
    begin
    i := readKey;
    write('Lettre ',i, ': ');
    readln(tablo[i]);
    On peut savoir où tu as trouvé ce code ? Si c'est sur un site web, n'y retourne jamais, on ne voit que rarement autant d'inepties en si peu de lignes.

    Tu peux faire qualque chose comme ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    ...
    for i:=1 to 8 do
    begin
      tablo[i] := ReadKey;
    end;
    ...


    ps : pense à encadrer ton code par les balises [ code] [ /code] (sans les espaces, qui ne sont là que pour les invalider.

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    143
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 143
    Points : 64
    Points
    64
    Par défaut
    Je m'excuse de mon ignorance. J'ai essayé ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     
    i := 1 ;
    for i := 1 to 8 do
        begin
        write('Lettre ',i, ': ');
        caractere := readKey;
        longueur := length(caractere);
        if (longueur > 1) then write('Entrez une seule lettre');
        readln(tablo[i]);
    Ca marche mal. Parfois il faut taper deux fois la lettre pour qu'elle s'affiche.
    D'autre part le message d'erreur ("Entrez une seule lettre") ne s'affiche pas lorsqu'il le faudrait.

    Ce que je souhaiterais, c'est qu'il y ait impossibilité pour l'utilisateur d'entrer plus d'un caractère.

  6. #6
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 949
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 949
    Points : 5 663
    Points
    5 663
    Par défaut
    Fio,

    Citation Envoyé par dimi2 Voir le message
    Je m'excuse de mon ignorance. J'ai essayé ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     
    i := 1 ;
    for i := 1 to 8 do
        begin
        write('Lettre ',i, ': ');
        caractere := readKey;
        longueur := length(caractere);
        if (longueur > 1) then write('Entrez une seule lettre');
        readln(tablo[i]);
    Ca marche mal. Parfois il faut taper deux fois la lettre pour qu'elle s'affiche.
    D'autre part le message d'erreur ("Entrez une seule lettre") ne s'affiche pas lorsqu'il le faudrait.

    Ce que je souhaiterais, c'est qu'il y ait impossibilité pour l'utilisateur d'entrer plus d'un caractère.
    ReadKey est ce que tu cherches, mais il faut quand même faire un petit effort pour voir comment ça fonctionne, et ne pas écrire du code au hasard. L'aide de ton compilateur est là pour ça.

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    143
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 143
    Points : 64
    Points
    64
    Par défaut
    Voici mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    i := 1 ;
    for i := 1 to 8 do
     
        begin
        write('Lettre ',i, ': ');
        tablo[i] := ReadKey;
        readln(tablo[i]);
    Il reste un petit problème : il faut taper la lettre 2 fois avant qu'elle ne s'affiche. Est-ce que j'ai fait une erreur dans ce code ?

    Merci de votre patience...

  8. #8
    Responsable Pascal, Lazarus et Assembleur


    Avatar de Alcatîz
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mars 2003
    Messages
    7 949
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2003
    Messages : 7 949
    Points : 59 619
    Points
    59 619
    Billets dans le blog
    2
    Par défaut
    Tu fais un ReadLn après le ReadKey, d'où deux lectures.
    Pour afficher le caractère, utilise plutôt Write ou WriteLn.

    Tu peux trouver de nombreux exemples d'utilisation de ReadKey sur ce forum, en faisant une recherche.
    En voici un parmi d'autres : http://www.developpez.net/forums/sho...d.php?t=331820


  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    143
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 143
    Points : 64
    Points
    64
    Par défaut
    Merci pour votre aide et vos conseils. Le petit problème de la double-entrée de la lettre est résolue par l'emploi de Writeln. Excusez-moi si j'ai abusé de votre patience, je ne suis pas très doué. Je vais visiter les liens que vous proposez. Je vous souhaite une bonne nuit.

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

Discussions similaires

  1. RubyMotion et les entrées utilisateur
    Par Bovino dans le forum Ruby
    Réponses: 0
    Dernier message: 17/07/2013, 16h08
  2. limiter les entrées utilisateur
    Par doubiste_59 dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 22/07/2010, 11h38
  3. envoye de document entre les differents utilisateurs
    Par t.n.b.g dans le forum WinDev
    Réponses: 4
    Dernier message: 25/05/2008, 09h38
  4. Récupérer les entrées utilisateurs
    Par Tsukaasa dans le forum Java ME
    Réponses: 2
    Dernier message: 29/04/2008, 12h25

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