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 à lire une ligne de fichier texte


Sujet :

VB.NET

  1. #1
    Membre confirmé
    Homme Profil pro
    call center
    Inscrit en
    Janvier 2014
    Messages
    225
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : call center
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2014
    Messages : 225
    Par défaut Problème à lire une ligne de fichier texte
    Bonjour,

    Je m'initie au VB.
    Je tâche d'extraire une ligne d'un fichier texte mais je n'y parviens pas.
    J'ai un message d'erreur: Erreur 1 'File' n'est pas déclaré. Il peut être inaccessible en raison de son niveau de protection.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
            Dim lines As String() = File.ReadAllLines("C:\Users\Utilisateur\Desktop\eff\test.txt")
            Dim index As Integer = Array.IndexOf(lines, "12")
     
            MsgBox(index)
    Or quand je passe par cette commande, il m'affiche bien le contenu:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
             Dim fileReader As String
            fileReader = My.Computer.FileSystem.ReadAllText("C:\Users\Utilisateur\Desktop\eff\test.txt")
            MsgBox(fileReader)
    Quelqu un aurait une idée?

  2. #2
    Membre Expert
    Avatar de wallace1
    Homme Profil pro
    Administrateur systèmes
    Inscrit en
    Octobre 2008
    Messages
    1 966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 966
    Billets dans le blog
    7
    Par défaut
    Bonsoir,

    Et en utilisant une boucle For ...each ou For ... Next pour parcourir ton tableau Lines() :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    For each line in lines 
     ' Msgbox(line)
    End for
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    For i as integer = 0 to lines.count - 1
     ' Msgbox(lines(i))
    Next
    Si tu veux lire uniquement la ligne 12 tu devrais pouvoir ajouter ce qu'il faut dans ces 2 exemples..

    Bon codage ++

  3. #3
    Membre Expert Avatar de Phil Rob
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2013
    Messages
    1 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 613
    Par défaut
    Bonjour,

    Avant toute autre investigation, je te propose d'écrire la ligne de code Imports System.IO tout en haut de ta page de code, avant la ligne Public Class .....

    Communiques-nous les problèmes qui surviennent ensuite.


  4. #4
    Membre Expert
    Avatar de wallace1
    Homme Profil pro
    Administrateur systèmes
    Inscrit en
    Octobre 2008
    Messages
    1 966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 966
    Billets dans le blog
    7
    Par défaut
    @Phil : bien vu, a coup sure il a oublié l import.

  5. #5
    Membre confirmé
    Homme Profil pro
    call center
    Inscrit en
    Janvier 2014
    Messages
    225
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : call center
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2014
    Messages : 225
    Par défaut
    Bingo,
    c'était ça!

    J'ai rajouté le code suivant qui me retrouve les info selon les lignes:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
      Dim tabFichier As String() = File.ReadAllLines("C:\Users\Utilisateur\Desktop\eff\test.txt")
     
            ' Là tu peux récupérer la ligne souhaitée (index 3 pour ligne 4 du fichier par exemple)
            Dim numligne As String = tabFichier(2)
     
            MsgBox(numligne)
    Je n'ai pas encore bien compris ce que fait Imports System.IO mais ça marche...
    En revanche, j'aimerais (après extraction d'une partie de la ligne, j'y travaille) attribuer cette variable à un label et je n'y parviens pas...
    Je suis encore preneur d'un tuyau...


    En tout cas bien joué!

  6. #6
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 204
    Par défaut
    Citation Envoyé par benjea06 Voir le message
    Je n'ai pas encore bien compris ce que fait Imports System.IO mais ça marche...
    le framework est composé de plein de dlls, une dll c'est comme un exe, ca contient du code, sauf qu'on ne peut pas la lancer, seul un exe peut démarrer
    une dll ou un exe on appelle ca un assembly
    pour utiliser une dll dans un projet il faut l'ajouter en référence, il y en a plusieurs incluses par défaut (les plus couramment utilisées)

    ensuite une dll est composée de plein de classes, vu qu'il y en a beaucoup elles sont rangées dans des tiroirs qu'on appelle namespace
    par exemple la classe File qui gère les fichiers est rangé dans le namespace IO qui est lui même dans le namespace System

    pour utiliser cette classe il faut donc écrire System.IO.File
    pour éviter d'écrire System.IO à chaque fois on peut ajouter imports System.IO en haut du fichier .vb, dans ce fichier toutes les classes contenues dans System.IO sont directement utilisables par leur nom

    tu peux toi même ranger tes classes dans des namespaces avec le mot clé namespace
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  7. #7
    Membre Expert Avatar de Phil Rob
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2013
    Messages
    1 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 613
    Par défaut
    Bonsoir,
    Pour affecter le label :
    LeLabelEnQuestion.Text = LaValeurQueTuVeux.
    Bonne soirée

  8. #8
    Membre confirmé
    Homme Profil pro
    call center
    Inscrit en
    Janvier 2014
    Messages
    225
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : call center
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2014
    Messages : 225
    Par défaut
    Merci pour l'explication Pol63, c'est ce que j'avais cru comprendre sans pour autant en saisir toutes les nuances...

    Phil Rob, ce code, je le mets ou?
    Pour l'instant, je double clic sur mon label mais ca m'ouvre un:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Private Sub Label3_Click(sender As System.Object, e As System.EventArgs) Handles Label3.Click
     
        End Sub

  9. #9
    Membre Expert Avatar de Phil Rob
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2013
    Messages
    1 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 613
    Par défaut
    Tu mets ce code là où tu obtiens la valeur à affecter, peut-être même dans la procédure Label3_Click ..., en fait ça dépend de ton algo, de ce que tu faire.
    Envoie plus de code ou tout ton projet (En zip) mais je n'aurai pas de temps avant demain dans l'après-midi.
    Tu trouveras peut-être la solution entre temps...

Discussions similaires

  1. Réponses: 3
    Dernier message: 04/01/2017, 22h21
  2. Lire une ligne et colonne fichier texte
    Par Naoli dans le forum Général Python
    Réponses: 4
    Dernier message: 24/11/2007, 13h56
  3. Réponses: 3
    Dernier message: 13/11/2007, 16h45
  4. Réponses: 2
    Dernier message: 08/11/2007, 16h33

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