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 :

[D7] Utilisation de try...except...end


Sujet :

Langage Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 30
    Par défaut [D7] Utilisation de try...except...end
    bonjour,

    je cherche à vérifier, si ce que l'utilisateur rentre est bien ce dont le programme a besoin. Je m'explique, l'utilisateur doit rentrer une instruction du type "TIRE 3". de là, j'extrait "TIRE", et "3" dans deux variables (action : string,l'autre nombrefois : integer).

    Mon probleme est le suivant, si l'utilisateur tape "TRE 3", un message d'erreur doit s'afficher, ça jusque là je sais comment faire, par contre s'il rentre "TIRE T3" ou "TIRE GTE", une message d'erreur doit s'afficher. Comment faire pour dire que si distance n'est pas un entier, faire afficher un message ?

    Merci d'avance à tous.

    Si je vous comprenez pas tout, dites le, j'essaierai de faire plus clair !

    PS : j'espère avoir mis le message dans la bonne section, veuillez m'excuser si ce n'est pas le cas, je suis nouveau


    EDIT : merci de voir mon dernier message!

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    158
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 158
    Par défaut
    Voici une possibilité

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    function saisie:Boolean;
    var distance: integer;
    begin
      result:=False;
      try
        distance := StrToInt(inputbox('Boite de saisie', 'Distance ?', '0'));
        result:=true;
      except
        MessageDlg('Valeur incorrecte', mtError, [mbOK], 0);
      end;
    end;
    A+

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 30
    Par défaut
    merci, je vais voir avec ça !

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 30
    Par défaut
    voila ce que j'ai fais

    try
    distance:=strtoint(distance_str);

    except
    write('Erreur sur la distance')
    end;


    mais ça marche pas, j'ai toujours le message barbare de delphi "Project nom.exe raised exception class EConvertError with message "t20" is not valid integer value'.Process stopped. Use Step or Run to continue.

    Comment faire pour que ce message s'affiche pas ? Ou est mon erreur dans le try...except...end;

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    158
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 158
    Par défaut
    Si je place le code suivant derrière un bouton

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    var
    distance:Integer;
    distance_str:string;
    begin
      try
        distance_str:='T1'; // KO
    //    distance_str:='1'; // Pour le test OK
        distance := strtoint(distance_str);
      except
        ShowMessage('Erreur sur la distance')
      end;
    end;
    Je n'ai pas de problème. Peut cela vient de ton write ?

    A+

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 30
    Par défaut
    j'avais mis un show avant et ça marché pas non plus, faut pas utiliser un "uses" spécial ?

    j'ai pris ton programme pour le tester chez moivoici le prog entier,
    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
    20
    program Project1;
     
    {$APPTYPE CONSOLE}
     
    uses
      SysUtils,
      Dialogs;
     
    var
    distance:Integer;
    distance_str:string;
    begin
      try
        distance_str:='T1'; // KO
    //    distance_str:='1'; // Pour le test OK
        distance := strtoint(distance_str);
      except
        ShowMessage('Erreur sur la distance')
      end;
    end.
    ça me fais toujours le message d'erreur "Project .... raised exception class EConvertError with message "T1" is not .....

Discussions similaires

  1. Try Except End qui n'empêche pas la remontée de l'exception
    Par Just-Soft dans le forum Bases de données
    Réponses: 10
    Dernier message: 24/02/2015, 12h49
  2. Instruction Try except End.
    Par PiPo123 dans le forum Langage
    Réponses: 3
    Dernier message: 13/10/2008, 03h02
  3. Comment utiliser (try..except) ?
    Par moukah2 dans le forum Débuter
    Réponses: 3
    Dernier message: 21/12/2007, 12h03
  4. [try except keyerror] récupérer le nom de la variable
    Par jean-jacques varvenne dans le forum Général Python
    Réponses: 2
    Dernier message: 03/03/2005, 16h59
  5. bloc try/except et API windows
    Par jakouz dans le forum API, COM et SDKs
    Réponses: 5
    Dernier message: 24/02/2005, 12h21

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