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 une chaine d'une textbox si une des 3 valeurs est présente


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 une chaine d'une textbox si une des 3 valeurs est présente
    Bonsoir,

    j'ai dans une textbox un texte qui peut se finir par :
    ALERTE
    Intervention
    mais dans certains cas aucun de ces 2 mots apparaissent, et je souhaite récupérer tous le texte avant ces mots ou dans la cas ou le texte ne présente aucun de ces deux mots, le récupéré malgré tous.

    j'ai donc fait ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
      'attente est la chaine de caractère reçu par le port série
      Dim fin1 As Integer = InStr(30, attente, "Intervention")
                    Dim fin2 As Integer = InStr(30, attente, "ALERTE")
                    TextBox1.Text = Mid(attente, 1, fin2 Or fin2 Or attente.Length)
    Mais malheureusement avec mon code, j'obtiens tout le texte même après alerte ou intervention !
    pouvez vous m'aider ?

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

    Informations forums :
    Inscription : Janvier 2010
    Messages : 104
    Points : 206
    Points
    206
    Par défaut
    Bonjour,
    1) Tu ne précises pas pourquoi la recherche débute à partir du caractère 30.
    2) Ta ligne 4 fait référence à une condition qui, ne revoyant que true ou false, se traduira numériquement par 0 ou -1. Ca ne va pas aider à l'extraction de la chaîne !
    3) Tu utilises des fonctions VB6 en lieu et place des fonctions .Net. Et ça c'est franchement bofbof...

    Ci-joint une portion de code (fonction) qui pourrait peut-être t'aider :
    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
     
        Public Function Extraction(ByVal attente As String) As String
            'Je définis les mots à rechercher
            Dim motARechercher1 As String = "intervention"
            Dim motARechercher2 As String = "alerte"
            'Je recherche la position des mots dans le texte (ici à partir de la position 0 et en confondant majuscules et minuscules)
            Dim fin1 As Integer = attente.IndexOf(motARechercher1, 0, System.StringComparison.InvariantCultureIgnoreCase)
            Dim fin2 As Integer = attente.IndexOf(motARechercher2, 0, System.StringComparison.InvariantCultureIgnoreCase)
            'En fonction des valeurs de fin1 et fin2 je retourne la chaîne 
            If fin1 > -1 Then
                Return attente.Substring(0, fin1)
            ElseIf fin2 > -1 Then
                Return attente.Substring(0, fin2)
            Else
                Return attente
            End If
        End Function

  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
    Merci,

    désolé j'ai omis quelques informations, j'ai fait débuté la recherche à 30, car le premier mot de ma textbox est dans tous les cas : "Intervention" et celui ci je dois le garder.
    à la ligne 4 la méthode mid est censé me récupéré le texte situé entre 1 et la valeur numérique ou ce trouve fin1 ou fin2

Discussions similaires

  1. Réponses: 11
    Dernier message: 19/04/2011, 15h30
  2. Recherche d'une chaine dans un textbox
    Par Gérard.L dans le forum VB.NET
    Réponses: 6
    Dernier message: 07/05/2009, 14h09
  3. Réponses: 2
    Dernier message: 11/07/2008, 10h47
  4. [RegEx] Extraire un entier ou un mot dans une chaine
    Par liverbird dans le forum Langage
    Réponses: 7
    Dernier message: 02/08/2007, 12h01
  5. extraire le nom d'un fichier dans une chaine sauf le car -
    Par digger dans le forum VB 6 et antérieur
    Réponses: 11
    Dernier message: 13/12/2005, 00h02

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