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 :

Leftstr retourne 0


Sujet :

Langage Delphi

  1. #1
    Membre du Club
    Inscrit en
    Mars 2005
    Messages
    105
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 105
    Points : 45
    Points
    45
    Par défaut Leftstr retourne 0
    Bonjour à toutes et à tous,

    J'ai un souci avec la fonction LeftStr...

    Le champ fields[2] ci dessous contient '1x122'.
    Quelqu'un peut-il me dire pourquoi le code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    y:=strtoint(rightstr(fields[2].asstring,3));
    retourne bien 122, alors que le code


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    x:=strtoint(leftstr(fields[2].asstring,1));
    retourne 0 ?

    J'ai essayé plein de choses mais à chaque fois le LeftStr retourne 0...

    Une idée ?

  2. #2
    Membre chevronné Avatar de philnext
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    1 552
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 552
    Points : 1 780
    Points
    1 780
    Par défaut
    Peut être y a t'il des caractères à gauche qui ne s'affichent pas ou que tu ne vois pas (style espace) par contre ça devrait plutôt déclencher une exception.
    Essaye :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    x:=strtoint(leftstr(trim(fields[2].asstring),1));

  3. #3
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 809
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 809
    Points : 13 508
    Points
    13 508
    Par défaut
    En effet ! Commencer par contrôler ce que retourne LeftStr serait un bon début

  4. #4
    Membre averti
    Homme Profil pro
    Consultant PLM
    Inscrit en
    Août 2007
    Messages
    203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Consultant PLM

    Informations forums :
    Inscription : Août 2007
    Messages : 203
    Points : 304
    Points
    304
    Par défaut
    Essaie plutôt "TryStrToInt" qui te renvoie False si ta string ne peut pas être convertie en int.

  5. #5
    Membre du Club
    Inscrit en
    Mars 2005
    Messages
    105
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 105
    Points : 45
    Points
    45
    Par défaut
    Merci pour les réponses mais... pas mieux.

    J'ai oublié de préciser que, après quelques essais,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    showmessage(leftstr(fields[i].asstring,1))
    me retourne 1 et que

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    showmessage(inttostr(length(leftstr(fields[i].asstring,1))))
    me retourne 1 à chaque fois.

    Je mettrais bien StrToInt en cause...


  6. #6
    Membre du Club
    Inscrit en
    Mars 2005
    Messages
    105
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 105
    Points : 45
    Points
    45
    Par défaut
    Ça marche

    grâce à bhamp0 et un

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    trystrtoint(leftstr(fields[i].asstring,1),x)
    Merci infiniment

  7. #7
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 809
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 809
    Points : 13 508
    Points
    13 508
    Par défaut
    Citation Envoyé par jackvpt Voir le message
    J'ai oublié de préciser que, après quelques essais,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    showmessage(leftstr(fields[i].asstring,1))
    me retourne 1
    Donc, c'est ce que tu voulais ! J'ai plutôt l'impression que i ne doit pas valoir 2

    StrToInt ou TryStrToInt égal même résultat, mais avec interception d'une éventuelle erreur de conversion dans le 2ème cas...

  8. #8
    Membre du Club
    Inscrit en
    Mars 2005
    Messages
    105
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 105
    Points : 45
    Points
    45
    Par défaut
    En fait, j'avais remplacé i par 2 pour l'exemple mais promis, seul TryStrToInt fonctionne, même si je ne comprends pas pourquoi... mais les voies de la programmation sont souvent impénétrables...

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

Discussions similaires

  1. [MFC] Retourner une liste d'objets
    Par 1cado dans le forum MFC
    Réponses: 10
    Dernier message: 28/07/2003, 12h11
  2. sum(XPATH) retourne NaN
    Par TOM-Z dans le forum XMLRAD
    Réponses: 4
    Dernier message: 19/03/2003, 13h48
  3. Réponses: 2
    Dernier message: 06/03/2003, 16h37
  4. Retourner un talbeau
    Par taupin dans le forum C
    Réponses: 7
    Dernier message: 19/01/2003, 04h22
  5. [Manip de fichiers] Fonction retournant des infos
    Par sans_atouts dans le forum C
    Réponses: 3
    Dernier message: 24/07/2002, 14h16

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