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 'String' aprés libelle


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    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
    Par défaut extraire 'String' aprés libelle
    Bonsoir,
    je souhaite extraire deux nombres situé derrière un libellé qui se présente sous cette forme :

    Coordonnees : 875243 2481718

    j'ai donc fait ceci en me basant sur les contraintes suivantes :
    Le libellé "Coordonnees :" est toujours le même
    Le nombres de caractéres de "Coordonnees : " est de 18

    voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     'coordonnée gps
                        Dim debut_coog As Integer = TextBox1.Text.IndexOf("Coordonnees :     ") + 18
                        Dim fin_coog As Integer = TextBox1.Text.IndexOf(ControlChars.NewLine, debut_coog)
                        Dim longeur_coog As Integer = fin_coog - debut_coog
                        coo_lambert = TextBox1.Text.Substring(debut_coog, longeur_coog)
    le soucis, c'est que mon programme à reçu ce matin les coordonnées sous cette forme :

    Coordonnees : 87427129 248510992

    du coup moins de 18 caractère entre le début de Coordonnées et le premier chiffre !
    auriez une piste, pour résoudre mon problème ?

  2. #2
    Expert confirmé Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Par défaut
    On peut utiliser les fonctions :
    • String.Replace() pour remplacer "Coordonnees :" par ""
    • String.Trim() pour enlever les blancs de début et de fin.

  3. #3
    Membre expérimenté
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 104
    Par défaut
    Bonjour.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
        'Cas 1 : "Coordonnees : 875243 2481718"
        'Cas 2 : "Coordonnees : 87427129 248510992"
        'Exemple d'appel de la fonction
        Dim nombres() As String = RecupererValeurs("Coordonnees : 875243 2481718")
     
        Private Function RecupererValeurs(ByVal chaine As String) As String()
            'Les valeurs commencent toujours après le terme "Coordonnées : " . 
            'On supprime donc cette portion de texte
            chaine = chaine.Substring("Coordonnees : ".Length - 1)
            'Il ne reste plus qu'à récupérer les 2 valeurs qui sont séparées par un espace
            Dim valeurs() As String = chaine.Trim.Split(" ")
            Return valeurs
        End Function

  4. #4
    Membre éclairé
    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
    Par défaut
    et comment puis je faire pour affecter séparément les 2 valeurs a 2 variables, j'ai essayé ce code ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Dim chaine As String
                        chaine.Substring("Coordonnees : ".Length - 1)
                        Dim valeurs() As String = chaine.Trim.Split(" ")
     
    'ma variable chaine contient 87427129   248510992 
     
    Dim sep() As String 'tableau pour les coordonnées
                sep = Split(chaine, "    ") 'affecte à un tableau la 1er et 2eme chaine entre 4 espaces malheureusement dans mon exemple ci dessus j'ai 3 espaces :(
                coo_lambert_x = CDbl(sep(0)) 'affecte a la var la coordonnée x en LT2E converti en Double
                coo_lambert_y = CDbl(sep(1)) 'affecte a la var la coordonnée y en LT2E converti en Double

  5. #5
    Membre expérimenté
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 104
    Par défaut
    Une solution envisageable : convertir tous les "doubles espaces" en "simple espace" avant d'extraire les valeurs :
    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
     
            Dim chaine As String = "Coordonnees : 87427129       248510992"
            Dim coo_lambert_x As Double
            Dim coo_lambert_y As Double
            'On remplace TOUS les doubles espaces par un espace SIMPLE
            Do
                chaine = chaine.Replace("  ", " ")
            Loop Until chaine.Contains("  ") = False
            'On supprime le terme "Coordonnees : "
            chaine = chaine.Substring("Coordonnees : ".Length - 1)
            'On récupère les 2 valeurs qui sont désormais séparées par un SEUL espace
            Dim valeurs() As String = chaine.Trim.Split(" ")
            'On affecte ces valeurs aux variables
            coo_lambert_x = Double.Parse(valeurs(0))
            coo_lambert_y = Double.Parse(valeurs(1))

  6. #6
    Membre éclairé
    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
    Par défaut
    Malheureusement j'ai d'autre donnée a extraire parmi celle ci, n'existerait il pas une autre solution en sachant que l'espace entre les 2 valeurs numérique peu varié ?

    Coordonnees : 87427129 248510992
    Coordonnees : 875075 2487061

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

Discussions similaires

  1. [RegExp] Extraire string vers json
    Par lokomass dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 20/10/2014, 15h49
  2. [XL-2003] Macro, extraire chaîne après caractère spécifique
    Par arkhang dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 08/11/2013, 12h03
  3. [RegEx] extraire string d'une autre string
    Par gégé140488 dans le forum Langage
    Réponses: 1
    Dernier message: 19/11/2012, 20h42
  4. Creer un tableau [Strings] apres tonkenizer
    Par vierkjan dans le forum Collection et Stream
    Réponses: 1
    Dernier message: 18/06/2012, 17h24
  5. Extraire caractère après /
    Par pasb71 dans le forum Access
    Réponses: 3
    Dernier message: 18/05/2011, 11h59

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