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

VB.NET Discussion :

Déplacement de sous-chaines dans une chaine


Sujet :

VB.NET

  1. #1
    Membre éprouvé Avatar de excalybur
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Novembre 2014
    Messages
    317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2014
    Messages : 317
    Par défaut Déplacement de sous-chaines dans une chaine
    Bonsoir,

    Voici mon soucis: Il me faut convertir et déplacer certaines sous-chaines '=>' en 'deplace' dans la chaine 'Enonce' :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Enonce = "h#2 b) b3 => c3  f7 => f6 c) b3 => f2  f7 => g3"

    pour obtenir ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Enonce = "h#2 b) deplace b3 c3 deplace f7 f6 c) deplace b3 f2 deplace f7 g3"
    Si j'utilise l'instruction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If InStr(Enonce, " => ") Then Enonce = Replace(Enonce, " -> ", " deplace ")
    j'obtiens bien sur le remplacement mais pas le déplacement des sous-chaines:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Enonce = "h#2 b) b3 deplace c3  f7 deplace f6 c)  b3 deplace f2  f7 deplace g3"
    C'est évidement pas ce que je veut. Il me semble qu'il faille indexer chaque sous-chaine de la chaine et déplacer '=>' de 2 occurrences en négatif

    Mais voila comment faire en gardant à l'esprit que la chaine peut avoir une longueur variable ?

    En vous remerciant pour vos idées.

  2. #2
    Membre Expert Avatar de Phil Rob
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2013
    Messages
    1 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 613
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Enonce = Enonce.Replace("=>", "Deplace")
    et pas besoin de If ..., si la chaine cherchée ne s'y trouve pas, rien ne se passe, il n'y a pas d’erreur.

    Bonne journée,


  3. #3
    Membre expérimenté Avatar de Delaney
    Homme Profil pro
    Developpeur VB amateur
    Inscrit en
    Mars 2014
    Messages
    148
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Developpeur VB amateur
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2014
    Messages : 148
    Par défaut
    Bonjour,

    essaie avec cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    Dim enonce As String = "h#2 b) b3 => c3  f7 => f6 c) b3 => f2  f7 => g3"
     Dim position As Integer
    Dim ind As Integer = 1
     
    While ind < enonce.Length
             position = InStr(ind, enonce, " =>")
             If position <> 0 Then
                enonce = enonce.Remove(position, 3) 'j'enlève 3 caractères : un espace et => pour ne garder qu'un espace
                enonce = enonce.Insert(position - 3, "deplace ") ' j'ajoute un espace après déplace
             End If
             ind += 1
    End While
    Label1.Text = enonce
    cela fonctionne si l'agencement est toujours identique et que tu peux déplacer toujours du même nombre de caractères.

    Sincèrement

  4. #4
    Membre éprouvé Avatar de excalybur
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Novembre 2014
    Messages
    317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2014
    Messages : 317
    Par défaut
    Bonjour

    Merci pour vos réponses et astuces. Effectivement cela fonctionne très bien.

    Il me reste plus qu'à configurer le cas ou le mot précédent fait plus de deux caractères ex: "bPb3 =>" à la place de "b3 =>". Ceci est simple à faire.

    Merci

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

Discussions similaires

  1. Sous Total dans une DataReport
    Par louis_figos dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 13/11/2006, 09h53
  2. Réponses: 6
    Dernier message: 25/10/2006, 21h00
  3. Réponses: 21
    Dernier message: 07/05/2006, 17h27
  4. [SQL-Server] Sous requete dans une procédure stockée
    Par Worldofdada dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 09/02/2006, 11h18
  5. Réponses: 28
    Dernier message: 22/09/2005, 11h57

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