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 :

Rechercher dans une chaîne à partir d'un tableau


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 Rechercher dans une chaîne à partir d'un tableau
    Bonsoir, j'ai une chaine qui peu se présenter sous deux facons :
    124 RUE DE LA PRAIRIE (REMELANGE)
    ou
    25 RUE DE PARIS
    et je souhaite avec une fonction retirer ce qui se trouve entre parenthèse d’après un tableau de string qui contient ce que je dois enlever entre panthése, dans ma chaîne, mais je n'ai pas tous le temps des parenthèse.

    alors voici ma fonction :
    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 parenthese_ville() As String = {"ST NIC. FORET", _
        "REMELANGE", "KONACKER", "MARSPICH", "OURY NORD", "HT. PONT", "OURY SUD", "EBANGE", "OURY", "VOLKRANGE", "OLYMPE 2", "CITE BOSMENT", _
        "EDANGE", "MORLANGE", "BUDANGE", "MINE VICTOR", "BURE", "METRICH"}
     
    Function traitement_adresse(ByVal Texte As String) As String
            Dim resultat As String = ""
            For i As Integer = 0 To parenthese_ville.Length - 1
                If Texte.Contains("(" & parenthese_ville(i) & ")") Then
                    resultat = Texte.Replace("(" & parenthese_ville(i) & ")", "")
                ElseIf Texte Then
                    resultat = Texte
                End If
            Next
            Return resultat
        End Function
    Le problème avec cette fonction c'est quelle me retourne toujours l'adresse au complet meme avec les parenthése et le lieu que j'ai dans mon tableau !

    je ne comprend pas ou j'ai fait une erreur ????

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Février 2006
    Messages
    505
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Février 2006
    Messages : 505
    Points : 293
    Points
    293
    Par défaut
    As-tu essayé en mode pas à pas, d'après moi tu passe toujours dans le else

  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
    en faite je trouve la valeur entre parenthèse, donc je lui affecte "" (rien) mais après je repasse dans le elseif et la je lui reafecte tout, mais comment arranger mon code pour que cela ne se produise pas ?

  4. #4
    Membre actif
    Profil pro
    Inscrit en
    Février 2006
    Messages
    505
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Février 2006
    Messages : 505
    Points : 293
    Points
    293
    Par défaut
    j'essayerais plustôt

    for each PV as string in parenthese_ville
    If Texte.Contains("(" & PV & ")") Then


    next


    je crois

  5. #5
    Membre actif
    Profil pro
    Inscrit en
    Février 2006
    Messages
    505
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Février 2006
    Messages : 505
    Points : 293
    Points
    293
    Par défaut
    else et non elseif

  6. #6
    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
    J'ai essayé ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    For i As Integer = 0 To parenthese_ville.Length - 1
                If Texte.Contains("(" & parenthese_ville(i) & ")") Then
                    resultat = Texte.Replace("(" & parenthese_ville(i) & ")", "")
                Else
                    resultat = Texte
                End If
            Next
    mais toujours le même resultat

  7. #7
    Membre actif
    Profil pro
    Inscrit en
    Février 2006
    Messages
    505
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Février 2006
    Messages : 505
    Points : 293
    Points
    293
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    For i As Integer = 0 To parenthese_ville.Length - 1
                If Texte.Contains("(" & parenthese_ville(i) & ")") Then
                    resultat = Texte.Replace("(" & parenthese_ville(i) & ")", "")
                    Exit for
                ElseIf Texte Then
                    resultat = Texte
                End If
            Next

  8. #8
    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
    J'ai essayé ton code mario, et la j'ai ce message d'erreur lorsque je n'ai pas de parenthése dans l'adresse :
    La conversion de la chaîne "25 RUE DE PARIS" en type 'Boolean' n'est pas valide.
    ???

  9. #9
    Membre actif
    Profil pro
    Inscrit en
    Février 2006
    Messages
    505
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Février 2006
    Messages : 505
    Points : 293
    Points
    293
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    Function traitement_adresse(ByVal Texte As String) As String
            Dim resultat As String = String.Empty
            For i As Integer = 0 To parenthese_ville.Length - 1
                If Texte.Contains("(" & parenthese_ville(i) & ")") Then
                    resultat = Texte.Replace("(" & parenthese_ville(i) & ")", "")
                    Exit For
                Else
                    resultat = Texte
                End If
            Next
            Return resultat
        End Function
    essai ça

  10. #10
    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
    merci ca fonctionne j'avais oublié le !
    mais a quoi sert il ?

  11. #11
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    665
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 665
    Points : 1 161
    Points
    1 161
    Par défaut
    Bonjour,
    Exit for force la sortie de la boucle dès qu'une correspondance est trouvée et évite de poursuivre le test sur les valeurs restantes du tableau qui te renvoient dans le Else (d'où les soucis que tu rencontrais).
    A noter que Return induit la sortie de la fonction :
    Les instructions Exit Function et Return provoquent la sortie immédiate d'une procédure Function.
    En les plaçant à bon escient, on allège le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
        Function traitement_adresse(ByVal Texte As String) As String
     
            For i As Integer = 0 To parenthese_ville.Length - 1
                If Texte.Contains("(" & parenthese_ville(i) & ")") Then
                    Texte = Texte.Replace("(" & parenthese_ville(i) & ")", "")
                    Return Texte
                End If
            Next
     
            Return Texte
     
        End Function

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

Discussions similaires

  1. Recherche dans une chaîne des codes contenus dans une table
    Par funkyjul dans le forum Langage SQL
    Réponses: 3
    Dernier message: 21/07/2011, 08h28
  2. [AC-2007] Faire une recherche dans une table à partir d'un formulaire
    Par cousco dans le forum VBA Access
    Réponses: 2
    Dernier message: 19/10/2010, 14h47
  3. [SimpleXML] [XPATH] recherche d'une valeur à partir d'un tableau
    Par Electr0 dans le forum Bibliothèques et frameworks
    Réponses: 4
    Dernier message: 13/08/2010, 18h37
  4. Recherche dans une chaîne de caractères
    Par fasyr dans le forum Tcl/Tk
    Réponses: 2
    Dernier message: 25/02/2008, 19h33
  5. [MySQL] Comment ecrire dans une BDD à partir d'un tableau ?
    Par weed dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 16/09/2005, 15h53

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