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 :

Lire fichier texte -> lire une ligne précise - vb 2008


Sujet :

VB.NET

  1. #1
    Membre expérimenté Avatar de hunteshiva
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Février 2010
    Messages
    1 069
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2010
    Messages : 1 069
    Points : 1 455
    Points
    1 455
    Par défaut Lire fichier texte -> lire une ligne précise - vb 2008
    Bonjour,
    j'ais réussi a lire mon fichier texte sans problème avec la routine suivante:
    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
    Private Sub LireLeFichierToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles LireLeFichierToolStripMenuItem.Click
     
            Try
                Dim sReader As StreamReader = New StreamReader(Application.StartupPath & "\Texte.txt")
                Dim sLine As String
     
     
                RichTextBox1.Text = "..... Debut du fichier ...."
                sLine = sReader.ReadLine()
                While Not sLine Is Nothing
                    RichTextBox1.Text = RichTextBox1.Text & vbCrLf & sLine
                    sLine = sReader.ReadLine()
                End While
                RichTextBox1.Text = RichTextBox1.Text & vbCrLf & ".... Fin du fichier ...."
     
            Catch ex As Exception
                MsgBox(ex.ToString)
            End Try
    a l'écran j'ais bien ce que je veut :


    seulement je voudrais lire des lignes précises
    ou une ligne sur deux *ou sur 3*
    et je ne vois pas comment faire ....

  2. #2
    Membre émérite Avatar de meziantou
    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Avril 2010
    Messages
    1 223
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Canada

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2010
    Messages : 1 223
    Points : 2 439
    Points
    2 439
    Par défaut
    tu peux ajouter un compteur de ligne. Ensuite pour savoir si c'est une ligne dont tu veux, tu peux utiliser un modulo : (n° de la ligne) mod x = 0
    Si tu veux une ligne sur 2 : modulo 2
    Si tu veux une ligne sur 3 : modulo 3

  3. #3
    Membre expérimenté Avatar de hunteshiva
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Février 2010
    Messages
    1 069
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2010
    Messages : 1 069
    Points : 1 455
    Points
    1 455
    Par défaut
    j'ais trouvé une solution
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Dim Lignes As String() = File.ReadAllLines(Application.StartupPath & "\Texte.txt")
    aprés c'été facile de trouver la ligne tu fesais *par exemple*
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    textBox1.Text = Lignes(1)
    seulement,
    je travaille sur une application SmartDevice
    qui utilise le CompackNetFramework et non une version classique NetFramework 2.0 ou 3.0

    donc je ne peut pas me servir de cette solution puisqu'elle n'existe pas pour une appli SmartDevice

    #################################################

    je n'ais pas bien saisie ton idée meziantou
    tu veu bien me l'expliquer avec un peut plus de détails ....

    #################################################

    sinon j'ais une autre solution
    qui me pousse a créer mon fichier texte de la manière suivante:
    Nom de la Ligne : A
    Offset en X : 500
    Offset en Y : 46
    Offset en Z : 24
    et aprés avec la fonction split
    je peu facilement extraire mes valeurs comme ceci:
    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
                Dim sReader As StreamReader = New StreamReader(Application.StartupPath & "\Texte.txt")
                Dim sLine As String
                Dim LectureSplit As String()
                Dim NomLigne As String
                Dim OffsetX, OffsetY, OffsetZ As Integer
     
                'Lecture de nom de la ligne
                sLine = sReader.ReadLine()
                LectureSplit = sLine.Split(": ")
                NomLigne = LectureSplit(1)
     
                'Lecture de l'Offset en X
                sLine = sReader.ReadLine()
                LectureSplit = sLine.Split(": ")
                OffsetX = LectureSplit(1)
     
                'Lecture de l'Offset en Y
                sLine = sReader.ReadLine()
                LectureSplit = sLine.Split(": ")
                OffsetY = LectureSplit(1)
     
                'Lecture de l'Offset en Z
                sLine = sReader.ReadLine()
                LectureSplit = sLine.Split(": ")
                OffsetZ = LectureSplit(1)
    ########################################################################################################
    pour ceux qui liront ce post et qui ne connaissent pas la fonction split je vous laisse un aperçu de ce que sa donne en un peut plus concret

    j'avais : Nom de la Ligne : A
    avec un split qui sépare ma chaine dés qu'elle voit ": ", en image sa donne ceci :


    elle permet de séparer un string en plusieurs parties afin d'en récupérer ce qui nous intéresse *ou de le classer*

  4. #4
    Membre émérite Avatar de meziantou
    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Avril 2010
    Messages
    1 223
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Canada

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2010
    Messages : 1 223
    Points : 2 439
    Points
    2 439
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Dim i as Integer = 0
    sLine = sReader.ReadLine()
    While Not sLine Is Nothing
        If i Mod 2 = 0 Then
            RichTextBox1.Text = RichTextBox1.Text & vbCrLf & sLine
        End If
        sLine = sReader.ReadLine()
        i = i + 1
    End While
    Tu ne traites que 1 ligne sur 2.

  5. #5
    Membre expérimenté Avatar de hunteshiva
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Février 2010
    Messages
    1 069
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2010
    Messages : 1 069
    Points : 1 455
    Points
    1 455
    Par défaut
    Ok,
    je vois mieux ce que tu voulais me dire maintenant


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Dim i as Integer = 0
    sLine = sReader.ReadLine()
    While Not sLine Is Nothing
        If i = 0 Then
            RichTextBox1.Text = RichTextBox1.Text & vbCrLf & sLine
        Else
            i = 0
        End If
        sLine = sReader.ReadLine()
        i = i + 1
    End While
    je pensé faire comme ceci,
    sur un fichier avec beaucoup beaucoup de lignes, sa peut éviter d'avoir un "i" trop grand
    *mais faut en vouloir pour dépasser la capacité d'un integer"


    et bien écoute je crois que le probléme est résolue,
    j'ais toutes les cartes en mains pour avancer

    merci meziantou

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 08/04/2013, 17h36
  2. Lire fichier texte à partir d'une ligne spécifique
    Par Msxty dans le forum VBScript
    Réponses: 7
    Dernier message: 15/07/2011, 15h42
  3. Réponses: 0
    Dernier message: 09/06/2011, 15h50
  4. Lire une ligne précise d'un fichier texte
    Par Junta dans le forum Entrée/Sortie
    Réponses: 6
    Dernier message: 23/04/2009, 18h26
  5. lire une ligne précise d'un fichier
    Par loic_86 dans le forum Langage
    Réponses: 1
    Dernier message: 06/01/2006, 13h37

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