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

EDI Delphi Discussion :

Comment trouver la ligne erronée depuis la fenêtre CPU ?


Sujet :

EDI Delphi

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2004
    Messages : 61
    Points : 40
    Points
    40
    Par défaut Comment trouver la ligne erronée depuis la fenêtre CPU ?
    Bonjour,
    Après quelque temps d'execution, Delphi m'annonce que mon programme a provoqué une classe d'exception EVariantTypeCastError (impossible de convertir le variant string en double).
    Le problème, c'est qu'il ne m'affiche pas ou!
    Et il m'est impossible de faire du pas à pas (mon soft fait des sendkey etc).
    Comment pourrais-je faire pour trouver la ligne d'erreur dans mon code ?
    Il y a un moyen via la fenêtre CPU ?
    Merci!

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 22
    Points : 16
    Points
    16
    Par défaut
    je ne connais pas ton code ni le contexte mais essaye des convertions de variant (genre : VarToStr() ) de tes variables qui pourraient causer cette erreur (peut etre sur tes variables dont le contenu provient un peu de façon externe a ton prog dans tes sendkey, je sais pas comment tu les utilise donc je peu pas te dire)

    mais en tout cas j'ai deja eu ton erreur dans un soft, l'erreur etait etrange en effet car elle venait lors d'une affectation d'une variable de type string avec un contenu qui pourtant etait bien du string, mais j'ai du faire une convertion de variant pour corriger le probleme, genre :

    var text,mastring : string;

    text := 'voila du texte en string';
    mastring := vartostr(text);

    Bon ok c'etait pas exactement ça non plus, j'ai résumé mais ça revenait presque à ça, et ça marchait pas tant que j'avais pas mi un vartostr().

    tu peu tjrs essayer ça en tout cas.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2004
    Messages : 61
    Points : 40
    Points
    40
    Par défaut
    Merci pour ta réponse.
    Les seules conversions que je fais,c'est du : string(variable_variant).
    Il n'y a pas une possibilitée de trouver la ligne erronée en indiquant l'adresse de l'erreur?
    Le problème c'est surtout de trouver cette adresse, car bien sur cette erreur ne te l'indique pas.
    Mais en affichant la fenêtre CPU quand l'erreur se manifeste, il y a aucun moyen pour retrouver la ligne dans le code?

    Merci

    Edit: J'ai édité le titre, c'est plus compréhensible comme ca

  4. #4
    Modérateur
    Avatar de tourlourou
    Homme Profil pro
    Biologiste ; Progr(amateur)
    Inscrit en
    Mars 2005
    Messages
    3 874
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Biologiste ; Progr(amateur)

    Informations forums :
    Inscription : Mars 2005
    Messages : 3 874
    Points : 11 363
    Points
    11 363
    Billets dans le blog
    6
    Par défaut
    la fenêtre CPU te montre la ligne de l'erreur ou de sa gestion, donc dans l'unité Variants, pas dans ton code...

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2004
    Messages : 61
    Points : 40
    Points
    40
    Par défaut
    Hmm d'accord.
    Donc pas moyen de trouver la ligne erronée de mon code via cette fenêtre ?
    Je dois chercher à la main ?

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2004
    Messages : 61
    Points : 40
    Points
    40
    Par défaut
    Personne ne peu m'aider ?
    Je suis coincé avec cette erreur et je ne trouve pas la ligne erronée

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 50
    Points : 61
    Points
    61
    Par défaut
    salut,

    il n' y a pas forcement de ligne erronee, mais plutot des donnees non compatible avec le type de convertion, regarde les donnees que tu convertis dans fichier log par exemple, et regarde dans l'aide, les convertion qui peuvent declencher un exception. comme par exemple string en reel qui utilise les parametres regionaux, et qui declenche une exception si le resultat n'est pas numerique ce qui peut etre le cas ou le séparateur numerique transmis est par exemple le point, alors que dans les parametres il s'agit de la virgule...

    c'est peut etre une piste.

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2004
    Messages : 61
    Points : 40
    Points
    40
    Par défaut
    J'ai trouvé!
    Et c'était très bête.
    J'utilise Excel et je fais des tests de données.
    J'avais ca: if vcell1.value='xyz'
    Et il fallait ca: if string(vcell1.value)='xyz'
    C'est dingue!
    Tout ce temps perdu pour si peu

    Merci quand même les gars

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

Discussions similaires

  1. Comment trouver la ligne qui a le maximun?
    Par mutkas10 dans le forum Requêtes
    Réponses: 3
    Dernier message: 20/06/2009, 18h40
  2. Comment trouver la ligne qui a le maximum ?
    Par mutkas10 dans le forum Débuter
    Réponses: 3
    Dernier message: 12/06/2009, 18h52
  3. [Aide]Comment trouver une ligne entièrement vide
    Par mickdu90 dans le forum Macros et VBA Excel
    Réponses: 17
    Dernier message: 17/08/2007, 10h45
  4. Comment afficher un MessageBox depuis une fenêtre réduite ?
    Par cyberma dans le forum Composants VCL
    Réponses: 2
    Dernier message: 30/07/2005, 18h16
  5. Réponses: 3
    Dernier message: 21/01/2004, 08h47

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