Comment spécifier-vous où commencer à lire dans un fichier lors de l'utilisation StreamReader?

StackOverflow https://stackoverflow.com/questions/589067

  •  09-09-2019
  •  | 
  •  

Question

Comment spécifier-vous où commencer à lire dans un fichier lors de l'utilisation StreamReader?

J'ai créé un objet StreamReader, ainsi qu'un objet de flux de fichier. Après que les deux objets sont créés, comment pourrais-je aller sur le contrôle où je veux que le StreamReader pour commencer à lire à partir d'un fichier?

Disons que le contenu du fichier sont les suivants,

// song list.
// junk info.
1. Song Name
2. Song Name
3. Song Name
4. Song Name
5. Song Name
6. Song Name

Comment puis-je contrôler la StreamReader pour lire, disons # 2? En outre, comment pourrais-je contrôler aussi là pour le faire arrêter la lecture par un délimiteur similaire comme à # 5?

Edit: Par delimiter Je veux dire, un moyen de faire la lecture à partir StreamReader commencer ( '2'.)

Était-ce utile?

La solution

Vous essayez de désérialiser un fichier dans un objet en mémoire? Si oui, vous pouvez analyser simplement le fichier entier en utilisant ReadLine ou quelque chose de similaire, stocker chaque ligne, et y accéder via une structure de données comme un KeyValuePair<int, string>.

Mise à jour: Ok ... Avec la nouvelle info, je pense que vous avez deux options. Si vous cherchez à la lecture jusqu'à ce que vous trouviez un match, vous pouvez Peek(), vérifier si le personnage est celui que vous cherchez, puis Read(). Sinon, si vous êtes à la recherche d'une position de jeu, vous pouvez simplement Read() que beaucoup de personnages et de jeter la valeur de retour.

Si vous cherchez delimiter complexe, vous pouvez lire toute la ligne ou même le fichier en mémoire et utiliser expressions rationnelles .

Hope qui aide ...

Autres conseils

Si le fichier contient une nouvelle ligne que vous pouvez utiliser délimiteurs ReadLine lire une ligne à la fois.

Donc, pour commencer à lire à la ligne n ° 2, vous liriez la première ligne et jeter puis lire des lignes jusqu'à ce que la ligne n ° 5.

Eh bien, si le contenu est un texte tout simplement comme ça, vous devez utiliser la méthode ReadLine du StreamReader.

http://msdn.microsoft.com /en-us/library/system.io.streamreader.readline.aspx

-Oisin

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top