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 :

Séparer les caractères par un espace


Sujet :

VBScript

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 30
    Par défaut Séparer les caractères par un espace
    Bonjour,

    Le problème semble simple mais je ne trouve pas de solution.
    Je pars d'une chaîne de caractères composée de x caractères dont je dois mettre un espace tous les 2 caractères:

    chaîne_entrée = "ABCDEFGHI"
    chhaîne_sortie =""A BC DE FG HI"


    Avez-vous une solution à ce problème ?

    Merci

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

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

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 130
    Par défaut
    Comment extraire une partie d'une chaîne ?
    Comment connaitre la longueur d'un chaîne ?
    Comment concaténer deux chaînes ?
    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
    Dim chaine_entree
    Dim chaine_sortie
    Dim T
    chaine_entree = "ABCDEFGHI"
    For T = 1 To Len(chaine_entree) Step 2
        chaine_sortie = chaine_sortie & Mid(chaine_entree, T, 2) & " "
    Next
    chaine_sortie = Left(chaine_sortie, Len(chaine_sortie) - 1)
    'chaîne_sortie = "AB CD EF GH I"
    MsgBox chaine_sortie
     
     
    chaine_sortie = Left(chaine_entree, 1) & " "
    For T = 2 To Len(chaine_entree) Step 2
        chaine_sortie = chaine_sortie & Mid(chaine_entree, T, 2) & " "
    Next
    chaine_sortie = Left(chaine_sortie, Len(chaine_sortie) - 1)
    'chaîne_sortie = "A BC DE FG HI"
    MsgBox chaine_sortie
    :whistle:pourquoi pas, pour remercier, un :plusser: pour celui/ceux qui vous ont dépannés.
    saut de ligne
    OOOOOOOOO👉 → → Ma page perso sur DVP ← ← 👈

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

    Informations forums :
    Inscription : Décembre 2009
    Messages : 30
    Par défaut
    Merci pour la réponse.

    Est-il possible de simplifier le code en insérant le séparateur " " en commençant la lecture de la chaine_entree par la droite ?

    La longueur de la chaine_entrree peut-être paire ou impaire.
    La fonction Mid() commence son traitement par la gauche, il faudrait une fonction équivalente qui commence par la droite.

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

    Informations forums :
    Inscription : Février 2006
    Messages : 1 302
    Par défaut
    bonjour,
    il faudrait une fonction équivalente qui commence par la droite.
    tu te compliques la vie...
    teste si la longueur de ta chaine est paire ou impaire (par un mod ou un And 1)
    si pair, l'algo est bon
    si impair, tu traites le 1er caractère et tu utilises l'algo à partir de la position 2
    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

  5. #5
    Expert confirmé
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Haute Savoie (Rhône Alpes)

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

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 130
    Par défaut
    Salut omen999, fleurparis
    Il peut aussi y arriver en utilisant StrReverse, se qui ne l'oblige pas a tester la longueur de chaine_entree
    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
    21
    22
    23
    24
    Option Explicit
    Dim chaine_entree
    Dim chaine_sortie
     '--------------------------- prog. principal--------------------------
    chaine_entree = "ABCDEFGHI" ' 9 caractères
    AjoutEspaces
    MsgBox chaine_sortie
     
    chaine_entree = "ABCDEFGHIJKL" ' 12 caractères
    AjoutEspaces
    MsgBox chaine_sortie
     
    '++++++++++++++++++++++++ Routine +++++++++++++++++++++++++++++++++++++
    Sub AjoutEspaces()
    Dim T
    chaine_entree = StrReverse(chaine_entree)'< ******** nouveauté
    chaine_sortie = ""
    For T = 1 To Len(chaine_entree) Step 2
        chaine_sortie = chaine_sortie & Mid(chaine_entree, T, 2) & " "
    Next
    chaine_sortie = Left(chaine_sortie, Len(chaine_sortie) - 1)
    chaine_sortie = StrReverse(chaine_sortie)'< ******** nouveauté
    end sub
    '+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    Ou j'ai pas compris, le doute étant que je ne suis pas sûr si chaine_sortie doit systematiquement commencer par une lettre suivit immediatement par un espace ?
    :whistle:pourquoi pas, pour remercier, un :plusser: pour celui/ceux qui vous ont dépannés.
    saut de ligne
    OOOOOOOOO👉 → → Ma page perso sur DVP ← ← 👈

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

    Informations forums :
    Inscription : Décembre 2009
    Messages : 30
    Par défaut
    Merci pour votre aide.

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

Discussions similaires

  1. [DOM] Remplacer les <br> par des espaces
    Par Sammuel dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 02/12/2009, 15h16
  2. Remplacement d'un caractère par un espace
    Par miboz dans le forum Langage
    Réponses: 3
    Dernier message: 03/08/2009, 17h41
  3. Réponses: 1
    Dernier message: 24/01/2008, 11h33
  4. Comment remplacer les tabulations par des espaces ?
    Par richarno dans le forum Langage
    Réponses: 7
    Dernier message: 25/10/2007, 13h05
  5. Réponses: 5
    Dernier message: 02/01/2007, 14h57

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