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

VBScript Discussion :

Manipulation de chiffres


Sujet :

VBScript

  1. #1
    Membre régulier Avatar de cubepiege
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    161
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 161
    Points : 78
    Points
    78
    Par défaut Manipulation de chiffres
    Bonjour,
    je fais appel à vous car je coince sur une problématique.
    J'ai écrit un script qui contrôle la longueur d'un numéro de matricule. Ce champs doit être sur 10 caractères.
    Ainsi lorsque je vois qu'une valeur = '5636' par exemple, je rajoute des zéros devant pour arriver à 10 caractères. J'obtiens donc '0000005636'.

    Je souhaite faire le contraire, et là je ne sais pas comment m'y prendre.
    Si j'ai '0000000084', je veux dégager tous les zéros devant et n'avoir que '84'.
    Il faut qu'a l'arrivée je puisse enlever tous les zéros à gauche jusqu'à rencontrer un chiffre !='0'

    Comment faire svp ?
    Cela fait un moment que je suis dessus et je n'y arrive pas.

    Merci

  2. #2
    Expert éminent
    Avatar de hackoofr
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2009
    Messages
    3 839
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 839
    Points : 9 222
    Points
    9 222
    Par défaut

    Postez votre début de code et

  3. #3
    Rédacteur
    Avatar de omen999
    Profil pro
    Inscrit en
    Février 2006
    Messages
    1 296
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 1 296
    Points : 3 549
    Points
    3 549
    Par défaut
    bonjour,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    NoMat= "0000000084"
    NoMatStripped=Mid(NoMat,InStrRev(NoMat,"0")+1)
    MsgBox NoMatStripped
    NoMat="0000005636"
    NoMatStripped=Mid(NoMat,InStrRev(NoMat,"0")+1)
    MsgBox NoMatStripped
    l'intérêt, c'est que le code est fonctionnel quelque soit la longueur de la chaine initiale
    nomen omen, nemo non omen - Consultez la FAQ VBScript et les cours et tutoriels VBScript
    le plus terrible lorsqu'une voiture renverse un piéton, c'est que ce sont les freins qui hurlent. (ramón)
    pas de questions techniques par mp

  4. #4
    Membre régulier Avatar de cubepiege
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    161
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 161
    Points : 78
    Points
    78
    Par défaut
    Bonjour omen, merci pour ta réponse, j'ai testé et cela à l'air de fonctionner mais:
    N'y aurait-il pas un soucis dans le cas ou l'on a des matricules = '0000000001', '0000000010' et '0000000100'.
    je l'ai passé sur un jeu de test et j'ai l'impression qu'il m'a dégagé des matricules lorsque l'on est dans ce cas. ici il me les a mis tous à '1'.
    Du coup j'ai perdu mes matricules '10' et '100'.

    Je crois que ton script enlève également les zéros après les chiffres !='0' qu'il trouve et pas seulement avant

  5. #5
    Membre actif
    Homme Profil pro
    retraité
    Inscrit en
    Juillet 2011
    Messages
    380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Juillet 2011
    Messages : 380
    Points : 247
    Points
    247
    Par défaut
    bonjour

    voila comment je ferai :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    x="000000100"
    msgbox x+0
    Windows 10
    Microsoft Edge (64 bits)
    Google Chrome Version 67.0.3396.99 (Build officiel) (64 bits)

  6. #6
    Membre confirmé Avatar de pitchalov
    Homme Profil pro
    Inscrit en
    Avril 2007
    Messages
    340
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 340
    Points : 582
    Points
    582
    Par défaut
    Bonjour,
    Moi je m'y serais pris comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    NoMat= "0000000084"
    NoMatStripped = CInt(NoMat)
    MsgBox NoMatStripped
    NoMat="0000005636"
    NoMatStripped = CStr(CInt(NoMat)) 'S'il faut absolument une chaine
    MsgBox NoMatStripped

  7. #7
    Membre régulier Avatar de cubepiege
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    161
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 161
    Points : 78
    Points
    78
    Par défaut
    Bonjour,
    merci Pitchalov.
    Cela fonctionne parfaitement.
    C'était je pense, la manière la plus simple de régler ce problème.

    Bien à toi.
    Cordialement

  8. #8
    Rédacteur
    Avatar de omen999
    Profil pro
    Inscrit en
    Février 2006
    Messages
    1 296
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 1 296
    Points : 3 549
    Points
    3 549
    Par défaut
    vive le cast explicite
    c'est effectivement la meilleure solution

    edit :
    le cast implicite c'est bien aussi mais pas recommandé pour la lisibilité
    nomen omen, nemo non omen - Consultez la FAQ VBScript et les cours et tutoriels VBScript
    le plus terrible lorsqu'une voiture renverse un piéton, c'est que ce sont les freins qui hurlent. (ramón)
    pas de questions techniques par mp

  9. #9
    Membre chevronné
    Avatar de I'm_HERE
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 013
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 013
    Points : 1 991
    Points
    1 991
    Par défaut
    Salut,

    Une autre façon est d'utiliser les regex

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    str="0000000012"
    Set r=new regex :  r.pattern="^0*"
    Msgbox(r.replace(str,""))

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

Discussions similaires

  1. gprolog : manipuler des entiers avec beaucoup de chiffres
    Par DavidleVrai dans le forum Prolog
    Réponses: 2
    Dernier message: 15/11/2012, 09h01
  2. Réponses: 10
    Dernier message: 02/11/2010, 08h09
  3. Réponses: 4
    Dernier message: 30/09/2009, 18h19
  4. Manipulation des chiffres et lettres
    Par smail21 dans le forum Débuter
    Réponses: 10
    Dernier message: 07/07/2008, 15h51
  5. [communication] De l'art de manipuler les chiffres
    Par r0d dans le forum Politique
    Réponses: 26
    Dernier message: 31/01/2007, 22h23

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