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...
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!
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!
Sinon tu peux faire un truc du style.
Ta ligne 63 se trouve dans lignes(62)
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))
cool!
je ne comprend pas parfaitement ce que faitmais en tout cas ça marche très bien
Code : Sélectionner tout - Visualiser dans une fenêtre à part lignes = contenu.Replace(vbCrLf, Chr(13)).Split(Chr(13))
![]()
L'intérêt est de comprendre quand même.je ne comprend pas parfaitement ce que fait
Code :
lignes = contenu.Replace(vbCrLf, Chr(13)).Split(Chr(13))
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 ....![]()
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!
si si, c'est clair comme explication!
Ca fonctionne et en plus maintenant j'ai compris pourquoi!
Que demande le peuple !?!
![]()
Partager