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 :

vb.net comment récupérer du texte entre deux "\'"


Sujet :

VB.NET

  1. #1
    Candidat au Club
    Homme Profil pro
    Auditeur informatique
    Inscrit en
    Octobre 2014
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Auditeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2014
    Messages : 14
    Points : 4
    Points
    4
    Par défaut vb.net comment récupérer du texte entre deux "\'"
    bonjour, j'essaie de récupérer du texte dans un nom de répertoire qui se trouve entre deux "\". Je cherche depuis ce matin à faire cela mais je n'y arrive pas. J'ai essayé plein de chose, regarder plein d'aide comme msdn et ça me semble impossible. J'ai essayé la fonction trim, la fonction split, la fonction regex, la fonction ltrim, la fonction rtrim... rien ne marche. A chaque fois que j'écris ces nom dans mon code, il le souligne et me donne un message. J'ai beau lire tout ce que je peux trouver sur le net, rien ne fonctionne. Je vous précise que je commence en VB.net. Les 14 premier caractère sont toujours identiques et je les soustrait du path. Le reste est toujours aléatoire, selon le répertoire de créer.

    voilà mon code:

    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
    18
    19
    20
    21
    Private Sub LireRep(ByVal Rep As String)
     
            Dim repertoire As New DirectoryInfo("z:\test")
            Dim NewRep As DirectoryInfo = Repertoire.CreateSubdirectory("Transfert PDF")
            Dim Extention As String = ("_pdf")
            Dim SousRep As String() = Directory.GetDirectories(Rep)
            Dim DirRep As String
            Dim dirrep2 As String
            Dim NomRep As String
     
            Extention = Path.GetFileNameWithoutExtension("_pdf")
     
            For Each Extention In Directory.GetFiles("x:\projects", Extention, SearchOption.AllDirectories)
                NomRep = Path.GetDirectoryName(Extention).ToUpper
                DirRep = NomRep.Substring(14)
                dirrep2 = DirRep.Split() 'C'est ici que je bloque
     
            Next
     
     
        End Sub
    donc ce que je cherche à faire, c'est de récupérer le texte entre deux backslash ex: z:\test\écris1\livre\enfant. Je voudrais récupérer écris1. Dans un autre cas, je peux avoir; z:\test\ecris divers\montagne\ valée. Dans ce cas, je voudrais récupérer montagne.


    Merci de voter aide.

  2. #2
    Membre actif Avatar de ShadowTzu
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Juin 2005
    Messages
    243
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Saône (Franche Comté)

    Informations professionnelles :
    Activité : Développeur de jeux vidéo

    Informations forums :
    Inscription : Juin 2005
    Messages : 243
    Points : 296
    Points
    296
    Par défaut
    cadeau:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     Private Function search_Char(data As String, Start_char As String, Index As Integer, End_Char As String) As String        
            Dim start_pos As Integer = 0
            Dim end_pos As Integer = -1
            For i As Integer = 0 To Index
                start_pos = data.IndexOf(Start_char, start_pos)
                start_pos += 1
            Next
            end_pos = data.IndexOf(End_Char, start_pos)
            If end_pos = -1 Then end_pos = data.Length
            Dim result As String = data.Substring(start_pos, end_pos - start_pos)
            Return result
        End Function
    et pour l'utiliser:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     Dim data As String = "z:\test\écris1\livre\enfant"
    MsgBox(search_Char(data, "\", 0, "\")) ' = test
    MsgBox(search_Char(data, "\", 1, "\")) ' = écris1
    MsgBox(search_Char(data, "\", 2, "\")) ' = livre
    MsgBox(search_Char(data, "\", 3, "\")) ' = enfant

  3. #3
    Membre émérite Avatar de mactwist69
    Homme Profil pro
    Développement VB.NET
    Inscrit en
    Janvier 2007
    Messages
    1 707
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développement VB.NET
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 707
    Points : 2 528
    Points
    2 528
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dirrep2 = DirRep.Split() 'C'est ici que je bloque
    Parce que tu n'utilises pas le split comme il faut.
    Le Split, déjà te retourne un tableau de String... Donc tu ne pourras pas le mettre dans un simple string.
    Ensuite, il faut lui indiquer le caractère séparateur... Il va pas deviner.

    Donc ça donne plutôt ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Dim dirrep2() As String
     
    dirrep2 = DirRep.Split(CChar("\"))


    ShadowTzu, je parie que tu viens du C++... Ça fait un peu Old School comme méthode
    Le Split permet de faire la même chose, en une ligne.... Il faut s'appuyer sur .NET

  4. #4
    Candidat au Club
    Homme Profil pro
    Auditeur informatique
    Inscrit en
    Octobre 2014
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Auditeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2014
    Messages : 14
    Points : 4
    Points
    4
    Par défaut
    merci pour vos réponse. J'ai trouvé une autre solution qui fait ce que je veux mais le tableau aurait été probablement la meilleur solution. Je vais regarder cela.

    merci beaucoup pour votre aide.

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

Discussions similaires

  1. [RegEx] Comment récupérer le texte entre deux motifs ?
    Par whitespirit dans le forum Langage
    Réponses: 6
    Dernier message: 25/03/2010, 22h59
  2. Réponses: 24
    Dernier message: 20/08/2006, 15h08
  3. [SAX] Comment récupérer un String entre deux balise xml?
    Par L4BiN dans le forum Format d'échange (XML, JSON...)
    Réponses: 6
    Dernier message: 23/06/2006, 10h02
  4. [C# 1.1] Comment récupérer du texte entre des mots connus ?
    Par foolsky dans le forum Windows Mobile
    Réponses: 8
    Dernier message: 26/04/2006, 15h15
  5. [ADO.Net][VB.NET] Comment copier des données entre deux BDD différentes ?
    Par maddog2032 dans le forum Accès aux données
    Réponses: 6
    Dernier message: 06/06/2005, 12h01

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