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

Windows Forms Discussion :

[file] lire à partir d'un ligne précise


Sujet :

Windows Forms

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 60
    Par défaut [file] lire à partir d'un ligne précise
    Bonjour,
    Comment lire dans un fichier texte à partir d'une ligne précise ? (en l'occurence la ligne 63)
    Pour le moment, je n'ai pas trouvé d'autre méthode que de faire ReadLine() 62 fois de suite.
    Je suis sûr qu'il doit y avoir une autre solution...

  2. #2
    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 jontleman Voir le message
    Bonjour,
    Comment lire dans un fichier texte à partir d'une ligne précise ? (en l'occurence la ligne 63)
    Pour le moment, je n'ai pas trouvé d'autre méthode que de faire ReadLine() 62 fois de suite.
    Je suis sûr qu'il doit y avoir une autre solution...
    Oui c'est une solution peut élégante mais il n'y a pas 36 000 méthodes !

    Autre méthode possible, si tu connais la position de ta ligne (en octets), tu peux définir la position de départ du flux pour la lecture avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Mon_Flux.Position = 4500 'démarre la lecture au 4500 eme octet
    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 !

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 60
    Par défaut
    le problème c'est que le nombre de caractères des lignes précédentes peut varier, mais je veux toujours commencer à la 63ème ligne!

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    344
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 344
    Par défaut
    Sinon tu peux faire un truc du style.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Dim contenu As String
    Dim lignes As String()
     
    contenu = fichier.ReadToEnd()
    lignes = contenu.Replace(vbCrLf, Chr(13)).Split(Chr(13))
    Ta ligne 63 se trouve dans lignes(62)

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 60
    Par défaut
    cool!
    je ne comprend pas parfaitement ce que fait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    lignes = contenu.Replace(vbCrLf, Chr(13)).Split(Chr(13))
    mais en tout cas ça marche très bien

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    344
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 344
    Par défaut
    je ne comprend pas parfaitement ce que fait
    Code :

    lignes = contenu.Replace(vbCrLf, Chr(13)).Split(Chr(13))
    L'intérêt est de comprendre quand même.

    La fonction Split permet de découper une chaine de caractères en une multitude de chaines de caractères par rapport un séparateur (ICI Chr(13)). Cependant le séparateur doit être du type Char alors que le retour à la ligne d'un fichier est de type String (concaténation de deux caractères Chr(13) & Chr(10) = VbCrLf).

    Donc on lit le contenu complet du fichier, on remplace les deux caractères de fin de ligne par un seul caractère Chr(13) et découpe la chaine par rapport à Chr(13).

    Je ne sais pas si mes explications sont très claires ....

  7. #7
    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 leSeb Voir le message
    L'intérêt est de comprendre quand même.

    La fonction Split permet de découper une chaine de caractères en une multitude de chaines de caractères par rapport un séparateur (ICI Chr(13)). Cependant le séparateur doit être du type Char alors que le retour à la ligne d'un fichier est de type String (concaténation de deux caractères Chr(13) & Chr(10) = VbCrLf).

    Donc on lit le contenu complet du fichier, on remplace les deux caractères de fin de ligne par un seul caractère Chr(13) et découpe la chaine par rapport à Chr(13).

    Je ne sais pas si mes explications sont très claires ....
    Pas mal comme solution
    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 !

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 60
    Par défaut
    si si, c'est clair comme explication!
    Ca fonctionne et en plus maintenant j'ai compris pourquoi!
    Que demande le peuple !?!

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 09/06/2011, 15h50
  2. Lire ligne précise fichier XML
    Par pendoRa dans le forum Format d'échange (XML, JSON...)
    Réponses: 40
    Dernier message: 19/05/2010, 17h29
  3. Lire une ligne précise dans un tableau
    Par kenru dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 23/12/2009, 14h08
  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