Bonjour à tous,
J'utilise un StreamReader pour récupérer des données d'un fichier html.
Ayant besoin de récupérer des données non contigues, j'utilise la méthode BaseStream.seek de mon streamReader pour me déplacer ds mon fichier mais il semblerait que cela ne fonctionne pas bien que la valeur de BaseStream.Position soit bien modifiées...
Dans le code ci-dessus:
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 if (!FinalLvl1.Contains(TypeFd)) { // saving current position position = sr.BaseStream.Seek(0, SeekOrigin.Current); // Go to Field Definition sr.BaseStream.Seek(FieldDepart, SeekOrigin.Begin); // Populate Element PopulateFieldWithElement(FieldDepart, Name, TypeFd, FinalLvl1, sr, writer); // restore position sr.BaseStream.Seek(position, SeekOrigin.Begin); }
- je sauvegarde la position de mon curseur
- je me déplace à un offset bien précis défini précédemment
- j'appelle une méthode avec un paramètre mon streamreader (le curseur du mon sr sera amené à bouger!)
- je restaure l'ancienne position du curseur.
Le pb c'est que mon curseur semble ne pas se repositionner à la position 'position' par contre sa valeur est correcte (égale à 'position'). Il conserve la valeur affectée par le dernier readline() de la méthode 'PopulateFieldWithElement'.
Je ne comprend pas pourquoi mon curseur est dans les choux bien que la valeur de BaseStream.Position soit égale à 'position'!!!!
quelqu'un a des idées ?
Partager