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 une ligne spécifique depuis un fichier [Débutant]


Sujet :

VB.NET

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 45
    Points : 22
    Points
    22
    Par défaut Lire une ligne spécifique depuis un fichier
    Bonjour,

    Je souhaiterais comme le titre l'exprime pouvoir lire une ligne spécifique dans un fichier contenant plusieurs lignes.

    Le but de cette demande serait de contrôler la ligne spécifique et si rien est écrit à cette ligne alors ma Checkbox1 doit être coché et la première ligne de mon fichier doit être inscrit dans ma textbox pseudo.

    Voici ce que j'ai commencé mais qui ne fonctionne pas...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Dim lines As String() = IO.File.ReadAllLines(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\.appli\fichier.name")
            If lines(1) = "" Then
                CheckBox1.Checked = True
                Dim sr As New System.IO.StreamReader(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\.appli\fichier.name")
                pseudo.Text = sr.ReadLine
                sr.Close()
    Pourriez-vous me préciser mon erreur ?

    Merci d'avance

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 104
    Points : 206
    Points
    206
    Par défaut
    Ca marche chez moi :

    1) J'ai un fichier texte nommé "MonFichier.txt" sur le Bureau
    2) Je lis toutes les lignes dans lignes() qui est un tableau de string
    3) Je contrôle la deuxième ligne (index=1) qui est donc lignes(1)
    4) Si cette ligne est vide, je coche le checkBox et je place dans le TextBox la première ligne (index=0) qui est donc lignes(0)

    Le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Dim fichier As String = My.Computer.FileSystem.SpecialDirectories.Desktop & "\MonFichier.txt"
    Dim lignes() As String = System.IO.File.ReadAllLines(fichier)
    If lignes(1) = String.Empty Then
         CheckBox1.Checked = True
         TextBox1.Text = lignes(0)
    End If

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 45
    Points : 22
    Points
    22
    Par défaut
    Merci mdevaux62,

    J'ai essayé avec ton code et ce dernier ne semble toujours pas fonctionner...

    Voici le code complet du form1.load

    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
    Public Class Form1
     
        Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            Dim fichier As String = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\.appli\fichier.name"
            If System.IO.File.Exists(fichier) = False Then
                MessageBox.Show("Aucun profil existant n'a été trouvé.", _
        "Erreur de Profil", _
        MessageBoxButtons.OK, _
        MessageBoxIcon.Error, _
        MessageBoxDefaultButton.Button1)
                Close()
            End If
     
            Dim lignes() As String = System.IO.File.ReadAllLines(fichier)
            If lignes(1) = String.Empty Then
                CheckBox1.Checked = True
                pseudo.Text = lignes(0)
            End If
            If System.IO.File.Exists(fichier) Then
                Dim sr As New System.IO.StreamReader(fichier)
                prenom.Text = sr.ReadLine
                nom.Text = sr.ReadLine
                pseudo.Text = sr.ReadLine
                sr.Close()
            End If
        End Sub
    Dans l'état actuel, j'ai une erreur au démarrage (l'index se trouve en dehors des limites du tableau) et je n'ai rien qui apparaît dans la textbox "pseudo" hors quand j'utilise le Streamreader et lui demande de lire les lignes elle apparaissent correctement dans les 3 textbox que j'ai spécifié sans message d'erreur.

  4. #4
    Membre actif
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 104
    Points : 206
    Points
    206
    Par défaut
    Teste déjà ce que renvoie ta variable lignes() :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim lignes() As String = System.IO.File.ReadAllLines(fichier)
    MessageBox.Show(lignes(0) & Environment.NewLine & lignes(1) & Environment.NewLine & lignes(2))
    PS : Je ne comprends pas pourquoi tu ouvres un StreamReader pour lire une nouvelle fois le fichier...

    Edit : ... d'autre part il semblerait que le "pseudo" se trouve en lignes(2) et non en lignes(0).
    C'est un peu confus en fait. Le mieux serait de nous montrer le contenu de ton fichier (ou tout au moins les premières lignes).

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 45
    Points : 22
    Points
    22
    Par défaut
    Merci je viens de comprendre mon erreur...

    Par contre, je souhaiterais avoir une information complémentaire.

    Si mon fichier en question se présente de la forme suivante.

    Damien
    (Ligne vide)
    ou encore avec juste une ligne

    Damien
    Lorsqu'il cherchera la lignes(1) donc la deuxième, il ne m'affiche rien dans la textbox même pas la ligne(0)

    Y'a t'il un moyen de déterminer une ligne comme non existante ?

    Merci d'avance

  6. #6
    Membre actif
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 104
    Points : 206
    Points
    206
    Par défaut
    Ben quand un fichier est mal fichu, il n'y a pas d'autres solutions que d'ajouter des tests (if... then... else) dans le code pour évaluer toutes les possibilités.

    Sinon, pour moi, LA solution c'est le fichier XML associé à une classe.

  7. #7
    Modérateur
    Avatar de Sankasssss
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 842
    Points : 4 232
    Points
    4 232
    Par défaut
    encore une fois, +1 mdevaux62
    et avec la Sérialisation XML ca va tout seul On sauve un objet et on lit un objet

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 45
    Points : 22
    Points
    22
    Par défaut
    Merci pour ton aide.

    Je passe en résolu

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

Discussions similaires

  1. [WM17] Lire une ligne spécifique d'un fichier.
    Par Papach58 dans le forum Windev Mobile
    Réponses: 3
    Dernier message: 11/03/2014, 23h42
  2. Lire une ligne spécifique dans un fichier texte
    Par ZRemi dans le forum MATLAB
    Réponses: 2
    Dernier message: 26/04/2010, 13h58
  3. Réponses: 55
    Dernier message: 16/11/2008, 17h32
  4. Ecriture dans une ligne spécifique d'un fichier texte
    Par X-plode dans le forum Entrée/Sortie
    Réponses: 7
    Dernier message: 15/07/2007, 08h46
  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