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 :

Stream reader et motif (REGEX)


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Février 2010
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 33
    Par défaut Stream reader et motif (REGEX)
    Bonjour,

    Voici mon problème je lis un flux d'entrée (fichier html)

    des que je vois le motif qui me convient ( des accolades dans mon cas)
    je remplace ce motif par une variable
    jusque la tout va bien ( lecture de ma ligne + stockage dans une variable result le motif qui a ete modifié)

    Mon pb est :

    comment retourner la ligne lue ds le flux avec le motif changé ?

    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
     Function lire_replace_html(ByVal fichier As String) As ArrayList
            Dim monlecteur As StreamReader
            Dim meslignes As New ArrayList
            Dim mavariable As String
            Dim mavariable2 As String
            mavariable2 = "test"
            mavariable = "{ctcnamdsc}"
            Dim result As String
            Dim template As Regex = New Regex(mavariable)
            Try
                monlecteur = New StreamReader(fichier)
                With monlecteur
                    .BaseStream.Seek(0, SeekOrigin.Begin)
                    While (.Peek > 0)
                        meslignes.Add(.ReadLine)
                        template.IsMatch(mavariable)
                        result = template.Replace(mavariable, mavariable2)
                        'pour tester si bien remplaçé
                        MsgBox(result)
     
                        Console.WriteLine("le remplacement est ", result)
                    End While
                End With
     
     
            Catch ex As Exception
                Console.WriteLine(ex.Message)
            Finally
                monlecteur.Close()
            End Try
     
            Return meslignes
    mon fichier toto.html est de la forme suivante

    ligne1 : blabla {ctcnamdsc} blabla
    ligne 2 : toto

    j'aimerais que meslignes me retourne

    ligne1 : blabla test blabla
    ligne2 toto

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Février 2010
    Messages
    291
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 291
    Par défaut
    Bonjour,

    Je pense que le plus simple est de créer un objet stream, où tu copie toutes les lignes de ton flux lu une fois le remplacement effectué (ou non), puis tu instancie un streamwriter avec ton objet stream précédent.

    A+

  3. #3
    Membre confirmé Avatar de yochima
    Profil pro
    Inscrit en
    Août 2009
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 93
    Par défaut
    Salut

    Si je t'ai bien compris,

    essaye ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    meslignes.Add(Regex.Replace(.ReadLine, mavariable, mavariable2).ToString)
    a la place de :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    meslignes.Add(.ReadLine)
                        template.IsMatch(mavariable)
                        result = template.Replace(mavariable, mavariable2)
    PS : oublie pas la dll :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Imports System.Text.RegularExpressions
    tiens moi au courant
    ++

  4. #4
    Membre averti
    Inscrit en
    Février 2010
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 33
    Par défaut
    pour l'imports tkt pas et pour repondre aux differentes questions, retourner ds un 2ème flux le resultat du premier c'est pas une mauvaise idée

    j'vais tester toutes vos soluces au boulots demain

  5. #5
    Membre averti
    Inscrit en
    Février 2010
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 33
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    meslignes.Add(Regex.Replace(.ReadLine, mavariable, mavariable2).ToString)
    niquel chrome ! thks a lot

  6. #6
    Membre confirmé Avatar de yochima
    Profil pro
    Inscrit en
    Août 2009
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 93
    Par défaut
    Pas de soucis

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

Discussions similaires

  1. Stream Reader accessibilité
    Par El-Diablo dans le forum Windows Forms
    Réponses: 6
    Dernier message: 04/01/2012, 12h47
  2. Réponses: 5
    Dernier message: 25/11/2011, 18h03
  3. [RegEx] Petit probleme de motif Regex
    Par cryonos dans le forum Langage
    Réponses: 2
    Dernier message: 10/11/2008, 16h54
  4. [RegEx] mon motif de regex ne passe pas
    Par hansaplast dans le forum Langage
    Réponses: 31
    Dernier message: 19/10/2005, 11h20
  5. [Regex] Plusieurs motifs
    Par sissi_l dans le forum Collection et Stream
    Réponses: 3
    Dernier message: 29/06/2004, 14h15

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