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 :

Extraire chaîne de caractère sans le saut de ligne a la fin


Sujet :

VB.NET

  1. #1
    Membre actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2007
    Messages
    758
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Février 2007
    Messages : 758
    Points : 279
    Points
    279
    Par défaut Extraire chaîne de caractère sans le saut de ligne a la fin
    Bonsoir,

    je suis face a un problème, dont je ne trouve pas la solution, alors voici j'ai une chaîne de caractère dans une textbox qui se présente sous cette forme :

    Date d'enregistrement le 09/05/2016

    Commune : BORDEAUX

    Adresse du propriétaire : etc....


    et donc moi je souhaite récupérer la chaîne situé derrière commune :
    Donc pour se faire j'utilise ce morceaux de code qui fonctionne correctement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     Dim debut_ville As Integer = TextBox2.Text.IndexOf("Commune : ") + 10 'entier qui repére le nom commune et ajoute 10 
                    Dim fin_ville As Integer = TextBox2.Text.IndexOf(ControlChars.NewLine, debut_ville) 'entier qui repére la fin de la ligne
                    Dim longeur_ville As Integer = fin_ville - debut_ville 'soustrait la fin du début de la valeur de commune
                    commune_op = TextBox2.Text.Substring(debut_ville, longeur_ville)
    et donc ma variable commune_op prend bien la valeur BORDEAUX mais avec le saut de ligne situé en dessous.
    Donc j'ai essayé en soustrayant 1 a l'entier fin_ville comme ci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim fin_ville As Integer = TextBox2.Text.IndexOf(ControlChars.NewLine, debut_ville) -1
    Mais la j'obtient dans commune_op = BORDEAU donc sans le caractère de fin, mais par contre j'ai pu le saut de ligne !!!

    Donc voila je ne sais pas comment supprimer ce saut de ligne !!! une idée ?

  2. #2
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 904
    Points : 10 168
    Points
    10 168
    Billets dans le blog
    36
    Par défaut
    Bonjour,

    oups !!!!!!!!!!!!!!!!!!!, j'ai lu trop vite. Il semble que ta ville ne termine ne termine pas ta chaîne. J'ai ajouté quelque chose à la fin.

    Si ta ville termine toujours ton entrée, tu peux probablement faire un peu plus court (Non testé):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    'Au besoin, ajuster pour +3
    Dim debut_ville As Integer = TextBox2.Text.lastIndexOf(": ")+3
    'À vérifier su tu as besoin du -1 ou d'un +1
    commune_op = TextBox2.Text.Substring(debut_ville, texbox2.text.length-debut_ville)
    if commune_op.contains(controlchars.newline) then
        commune_op = commune_op.substring(commune_op.length-1)
    end if
    Tu peux mettre un espion sur commune_op et exécuter au pas-à-pas.

    Pour "reculer" dans l'exécution de ton programme ajoute le bouton "Définir l'instruction suivante" dans ta barre d'outils.

    Si tu veux arrêter en chemin, sans mettre de point d'arrêt, ajoute le bouton "Exécuter j'usqu'au curseur dans ta barre d'outils". Ensuite, tu places ton curseur où tu veux arrêter et tu cliques sur le bouton.

    Après relecture de la question (Toujours pas testé) :

    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 LeTableau as string = textbox2.text.split(controlchars.newline)
    for each UnTexte as string in LeTableau
       if UnTexte.contains("Commune") then
           'Au besoin, ajuster pour +3
           Dim debut_ville As Integer = UnTexte.IndexOf(": ")+3
           'À vérifier si jamais tu as besoin du -1 ou d'un +1
          commune_op = UnTexte.Substring(debut_ville, UnTexte.length-debut_ville)
          if commune_op.contains(controlchars.newline) then
             commune_op = commune_op.substring(commune_op.length-1)
          end if
         'Puisque la ville est trouvée, inutile de continuer la boucle
         exit for
       end if
    next
    À ma connaissance, le seul personnage qui a été diagnostiqué comme étant allergique au mot effort. c'est Gaston Lagaffe.

    Ô Saint Excel, Grand Dieu de l'Inutile.

    Excel n'a jamais été, n'est pas et ne sera jamais un SGBD, c'est pour cela que Excel s'appelle Excel et ne s'appelle pas Access junior.

  3. #3
    Membre actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2007
    Messages
    758
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Février 2007
    Messages : 758
    Points : 279
    Points
    279
    Par défaut
    ok merci clement, j'ai testé ca fonctionne bien. merci

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 03/04/2012, 16h19
  2. Réponses: 2
    Dernier message: 17/07/2008, 20h31
  3. Réponses: 2
    Dernier message: 26/07/2007, 12h05
  4. Réponses: 4
    Dernier message: 04/11/2006, 20h36
  5. Réponses: 2
    Dernier message: 22/04/2006, 18h05

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