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 :

Calculer le nombre de lettre dans une chaine de caractères


Sujet :

VBScript

  1. #1
    Membre à l'essai
    Inscrit en
    Février 2009
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 36
    Points : 20
    Points
    20
    Par défaut Calculer le nombre de lettre dans une chaine de caractères
    Bonjour à tous,

    J'aimerais calculer le nombre de "lettre" (guillemets) et "d'espace" dans une chaine de caractère du type "Nombre d'articles 24". Le résultat me renverrais donc "18".

    Pour calculer la longueur du chaine je fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Dim chaine
    chaine = "Nombre d'articles 24"
    long = Len(chaine)
    msgbox long
    et là le résultat me renvoi "20"

    Merci pour votre aide

  2. #2
    Modérateur
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 077
    Points : 17 169
    Points
    17 169
    Par défaut
    Salut

    Il te faut faire une détection du code ascii de chaque constituant de ta phrase
    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
    Dim chaine
    Dim T, LtrMA, LtrMi, Esp, Gui, Chfr, CodAscii
    chaine = "Nombre d'articles 24"
    For t = 1 to Len(chaine)
            CodAscii = asc(mid(chaine,t,1))
            if CodAscii = 32 then Esp = Esp + 1
            if CodAscii = 39 then Gui = Gui + 1
            if CodAscii >= 48 and CodAscii <= 57 then Chfr = Chfr + 1
            if CodAscii >= 65 and CodAscii <= 90 then LtrMA = LtrMA + 1
            if CodAscii >= 97 and CodAscii <= 122 then LtrMi = LtrMi + 1
    Next
     
    MsgBox "Dans la chaine: " & chaine & " il y a" & vbcrlf _
            & Esp & " espace(s)" & vbcrlf _
            & Gui & " guillemet(s)" & vbcrlf _
            & Chfr & " chiffre(s)" & vbcrlf _
            & LtrMA & " lettre(s) MAJ" & vbcrlf _
            & LtrMi & " lettre(s) min"
    Soyez sympa, pensez -y
    Balises[CODE]...[/CODE]
    Balises[CODE=NomDuLangage]...[/CODE] quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Balises[C]...[/C] code intégré dans une phrase.
    Balises[C=NomDuLangage]...[/C] code intégré dans une phrase quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Le bouton en fin de discussion, quand vous avez obtenu l'aide attendue.
    ......... et pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.
    👉 → → Ma page perso sur DVP ← ← 👈

  3. #3
    Membre à l'essai
    Inscrit en
    Février 2009
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 36
    Points : 20
    Points
    20
    Par défaut
    Merci

  4. #4
    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,
    ou les expressions régulières :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Set regEx = New RegExp
    regEx.Pattern = "\D+"
    regEx.IgnoreCase = True
    regEx.Global = True
    Set Matches = regEx.Execute("Nombre d'articles 24")
    For Each Match in Matches   'Itère la collection Matches.
       RetStr = RetStr & Len(Match.Value) & vbCRLF
    Next
    MsgBox RetStr
    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

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

Discussions similaires

  1. Compter le nombre de lettres dans une chaine
    Par darkterreur dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 25/09/2012, 10h32
  2. calculer le nombre d'espaces dans une chaine de caractère
    Par tang le breton dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 05/06/2009, 10h45
  3. Réponses: 4
    Dernier message: 04/03/2009, 10h18
  4. Tester le nombre de lettre d'une chaine de caractéres
    Par koKoTis dans le forum Scripts/Batch
    Réponses: 4
    Dernier message: 13/05/2007, 15h58
  5. Réponses: 4
    Dernier message: 16/12/2005, 19h36

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