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 :

Afficher une ligne Donnée dans un fichier texte existant


Sujet :

VB.NET

  1. #1
    Membre du Club
    Femme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Juin 2014
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2014
    Messages : 51
    Points : 40
    Points
    40
    Par défaut Afficher une ligne Donnée dans un fichier texte existant
    bonjour à tous , je commence à faire une application pour des opérations sur les fichiers logs , c'est ce que j'ai fait jusqu’à maintenant c'est sélectionner le fichier l'ouvrir et l'afficher dans un message box dans mon interface mais ce que j'aimerais faire c'est entrer le numéro d'une ligne que je souhaiter afficher dans un textbox et l'afficher dans l'interface ou bien ouvrir le fichier en sélectionnant la ligne avec une couleur différente.
    voici le code du bouton "Afficher la ligne"mais ça fonctionne pas correctement :

    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 BtOuvreFlux_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtOuvreFlux.Click
            TResFichier.Text = ""
            Dim counter As Int32 = 0
            Dim Monflux As Stream
            Monflux = File.OpenRead(TcheminFichier.Text)
            Dim Maligne As StreamReader = New StreamReader(Monflux, System.Text.Encoding.ASCII)
            Maligne.BaseStream.Seek(0, SeekOrigin.Begin)
            While Maligne.Peek() > -1
                counter += 1
                Dim rep As String = Maligne.Peek
                TResFichier.Text = TResFichier.Text + Maligne.ReadLine() + vbNewLine
                If counter = TextBox1.Text Then
                    selectioner("green")
                End If
     
            End While
            Maligne.Close()
        End Sub

  2. #2
    Modérateur

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 722
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 722
    Points : 5 100
    Points
    5 100
    Par défaut
    Bonjour,

    Tu peux utiliser un datagridview pour voir les lignes et en afficher une dans une couleur différente

    Lecture et affichage des lignes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
        Private LstLigneLogs As List(Of String)
        Private num As Integer = 0
        Private FichierLogs As String = "D:\data\fichiers\groupe.txt" ' en dur pour test
     
        Private Sub btnLitFichier_Click(sender As System.Object, e As System.EventArgs) Handles btnLitFichier.Click
            LstLigneLogs = System.IO.File.ReadAllLines(FichierLogs).ToList
            dgvLogs.Rows.Clear()
            For Each ligne As String In LstLigneLogs
                dgvLogs.Rows.Add(ligne)
            Next
        End Sub
    Affichage de la ligne dans la couleur voulue (et remet l'ancienne à sa couleur d'origine)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
        Private Sub txtLigne_TextChanged(sender As System.Object, e As System.EventArgs) Handles txtNumLigne.TextChanged
            dgvLogs.Rows(num).Cells(0).Style.BackColor = Color.White
            If Integer.TryParse(txtNumLigne.Text, num) Then dgvLogs.Rows(num).Cells(0).Style.BackColor = Color.Aqua
        End Sub
    Traductions d'articles :
    La mémoire en .NET - Qu'est-ce qui va où ?
    Architecture DAL de haute performance et DTO ; Version C# : Partie 1,Partie 2,Partie 3 — Version VB.NET : Partie 1,Partie 2,Partie 3
    N'hésitez pas à consulter la FAQ VB.NET, le cours complet de Philippe Lasserre et tous les cours, articles et tutoriels.

  3. #3
    Membre régulier
    Homme Profil pro
    Etude technique THT
    Inscrit en
    Juillet 2012
    Messages
    84
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Etude technique THT
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Juillet 2012
    Messages : 84
    Points : 111
    Points
    111
    Par défaut RE
    Bonjour,

    Pour sélectionner la ligne avec une couleur différente, tu peux utiliser RichTextBox car je ne pense pas que cela soit possible avec TextBox.

    Ton code ne fonctionne pas car tu compares un entier avec un texte :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If counter = TextBox1.Text Then
    à remplacer par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If counter = CInt(TextBox1.Text) Then
    Tu peux utiliser un label pour afficher la ligne recherchée.

    Utilise Try, Catch pour la gestion des erreurs.


    Voici un exemple :
    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
    ' Nécessite Label1
     
    Option Explicit On
    Option Strict On
     
    Imports System.IO
     
    ------------------------------
     
    Private Sub LireFichier(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtOuvreFlux.Click
            Try
                Label1.ForeColor = Color.Green ' Choix de la couleur de texte
                TResFichier.Clear() : Label3.Text = Nothing
                Dim counter As Int32
                Dim rep, chaine As String
                rep = Nothing : chaine = Nothing
     
                Dim Maligne As New StreamReader(TcheminFichier.Text, System.Text.Encoding.ASCII)
     
                While Maligne.Peek() > -1
                    counter += 1
                    chaine = Maligne.ReadLine
                    TResFichier.Text &= chaine & Environment.NewLine
                    If counter = CInt(TextBox1.Text) Then ' <== Comparaison avec le même format (integer)
                        rep = chaine
                        ' MsgBox("ligne n° " & TextBox1.Text & " :" & vbNewLine & rep) ' <== Si tu veux afficher la ligne dans un méssage.
                    End If
                End While
                Maligne.Close()
                Label1.Text = rep ' <== Affiche la ligne recherchée dans un Label
            Catch ex As Exception
                MsgBox(ex.Message & vbCrLf & ex.ToString)
            End Try
     
        End Sub

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

Discussions similaires

  1. Lire une ligne spécifique dans un fichier texte
    Par ZRemi dans le forum MATLAB
    Réponses: 2
    Dernier message: 26/04/2010, 13h58
  2. Réponses: 3
    Dernier message: 23/07/2009, 13h11
  3. Acceder a une ligne donnée d'un fichier texte
    Par mcorvaisier dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 11/02/2009, 10h00
  4. Réponses: 12
    Dernier message: 05/06/2008, 15h17
  5. Chercher une ligne aléatoire dans un fichier texte
    Par pyopyo dans le forum Langage
    Réponses: 1
    Dernier message: 30/04/2008, 09h26

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