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 :

Problème d'une chaine incomplète


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de paradeofphp
    Inscrit en
    Décembre 2005
    Messages
    313
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 313
    Par défaut Problème d'une chaine incomplète
    Bonjour tout le monde,
    j'ai écris un script permettant de lire le contenu d'un fichier texte puis le formater et l'afficher à l'écran. chaque ligne lue est traitée puis ajoutée dans une chaine de type string. la chaine construite est affichée à l'écran dans un textbox multiligne. voici une partie du code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    'LECTURE FICHIER
    fs = New FileStream(filename, FileMode.Open, FileAccess.Read)
    sr = New StreamReader(fs)
    Lecture des lignes du fichier

    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
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
     
    content = sr.ReadLine.Trim
    While Not content Is Nothing
         If content.StartsWith("Solde_PME") Then
                 chaine = content.Replace("Solde_PME>LON/6=", "Solde PME " + s.PadLeft(14)).Trim + ControlChars.CrLf
                        End If
    .
    .
    .
    .
                        If content.StartsWith("Code_Etape") Then
     
                            If content.StartsWith("Code_Etape_ET1") Then
                                chaine += content.Replace("Code_Etape_ET1>ASC/30=", "Code Etape Et.1 " + s.PadLeft(8)).Trim + ControlChars.CrLf
                            End If
     
                            If content.StartsWith("Code_Etape_ET2") Then
                                chaine += content.Replace("Code_Etape_ET2>ASC/30=", "Code Etape Et.2 " + s.PadLeft(8)).Trim + ControlChars.CrLf
                            End If
     
                            If content.StartsWith("Code_Etape_ET3") Then
                                chaine += content.Replace("Code_Etape_ET3>ASC/30=", "Code Etape Et.3 " + s.PadLeft(8)).Trim + ControlChars.CrLf
                                chaine += "------------------------------------------------------" + ControlChars.CrLf
                            End If
     
                            If content.StartsWith("Code_Etape1") Then
                                chaine += content.Replace("Code_Etape1>ASC/6=", "Code étape 1 " + s.PadLeft(11)).Trim + ControlChars.CrLf
                            End If
     
                            If content.StartsWith("Code_Etape2") Then
                                chaine += content.Replace("Code_Etape2>ASC/6=", "Code étape 2 " + s.PadLeft(11)).Trim + ControlChars.CrLf
                            End If
     
                            If content.StartsWith("Code_Etape3") Then
                                chaine += content.Replace("Code_Etape3>ASC/6=", "Code étape 3 " + s.PadLeft(11)).Trim + ControlChars.CrLf
                            End If
     
                            If content.StartsWith("Code_Etape4") Then
    MsgBox("je suis en étape 4")                          
    chaine += content.Replace("Code_Etape4>ASC/6=", "Code étape 4 " + s.PadLeft(11)).Trim + ControlChars.CrLf
                               MsgBox(chaine)
                           End If
     
                        End If
     
    content = sr.ReadLine()
    End While
    Le problème est que l'étape 4 ne s'affiche pas même s'il existe bien dans le fichier. j'ai rajouté un msgbox :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MsgBox("je suis en étape 4")
    J'ai bien le message qui s'affiche. j'ai rajouté mais la chaine ne contient pas la ligne de l'étape 4.
    Avez-vous une idée du problème ?
    Si vous avez des question , n'hésitez pas. Merci

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2007
    Messages : 62
    Par défaut
    tu as bien respecté la casse de "Code_Etape4" ?
    et quand tu debug "content", tu as bien "Code_Etape4" dans la chaine ?
    ca doit forcément marcher sinon

  3. #3
    Membre éclairé Avatar de paradeofphp
    Inscrit en
    Décembre 2005
    Messages
    313
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 313
    Par défaut
    tu as bien respecté la casse de "Code_Etape4" ?
    et quand tu debug "content", tu as bien "Code_Etape4" dans la chaine ?
    ca doit forcément marcher sinon
    Oui, la casse est respectée.
    Code_Etape4 existe dans le fichier, et je rentre dans le bloc if lui correspondant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    If content.StartsWith("Code_Etape4") Then
                 MsgBox("je suis en étape 4")                          
                chaine += content.Replace("Code_Etape4>ASC/6=", "Code étape 4 " + s.PadLeft(11)).Trim + ControlChars.CrLf
                 MsgBox(chaine)
             End If
    les 2 msgbox s'affichent, sauf que la chaine ne reçoit pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    content.Replace("Code_Etape4>ASC/6=", "Code étape 4 " + s.PadLeft(11)).Trim + ControlChars.CrLf
    J'ai me suis dit peut être c'est lié à la taille

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2007
    Messages : 62
    Par défaut
    non ca ne peut pas etre un probleme de taille ...

    et quand tu debug il y a quoi dans

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    content.Replace("Code_Etape4>ASC/6=", "Code étape 4 " + s.PadLeft(11)).Trim + ControlChars.CrLf

    ?


    au lieu ControlChars.CrLf je ne saurais que trop te conseiller Environment.Newline

  5. #5
    Membre éclairé Avatar de paradeofphp
    Inscrit en
    Décembre 2005
    Messages
    313
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 313
    Par défaut
    tu peux me dire pourquoi tu me conseille d'utiliser Environment.Newline au lieu de ControlChars.CrLf ?? Merci

  6. #6
    Membre Expert
    Avatar de Aspic
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    3 905
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2005
    Messages : 3 905
    Par défaut
    Citation Envoyé par paradeofphp Voir le message
    tu peux me dire pourquoi tu me conseille d'utiliser Environment.Newline au lieu de ControlChars.CrLf ?? Merci
    Et tu as essayé avec VbCrLf ?
    Qui ne tente rien n'a rien !
    Ce qui ne nous tue pas nous rends plus fort !!
    Mon projet ZELDA en C++/Allegro
    http://www.tutoworld.com - Le Forum -
    Mes ressources Dotnet (cours, sources, tutos)
    --------------------------------------------
    + + =

    Ne pas oublier le Tag !

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2007
    Messages : 62
    Par défaut
    Citation Envoyé par paradeofphp Voir le message
    tu peux me dire pourquoi tu me conseille d'utiliser Environment.Newline au lieu de ControlChars.CrLf ?? Merci
    parce que ControlChars.CrLf c'est spécifique VB
    alors que Environment.Newline c'est une propriété générique du framework ...

  8. #8
    Membre éclairé Avatar de paradeofphp
    Inscrit en
    Décembre 2005
    Messages
    313
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 313
    Par défaut
    merci pour ton explication iron182.
    Sinon j'ai essayé Environment.NewLine et VbCrLf et rien n'a changé.

Discussions similaires

  1. problème avec une chaine de connexion
    Par étudiant49 dans le forum VB.NET
    Réponses: 2
    Dernier message: 06/08/2010, 12h48
  2. Réponses: 8
    Dernier message: 06/05/2007, 22h47
  3. [RegEx] [Problème] Limiter une chaine
    Par AnGe7s dans le forum Langage
    Réponses: 10
    Dernier message: 21/08/2006, 02h09
  4. Réponses: 5
    Dernier message: 26/07/2006, 12h13
  5. Réponses: 3
    Dernier message: 26/05/2006, 20h49

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