J'ai un fichier texte qui contient plusieurs 'enregistrements' à l'intérieur. Chaque enregistrement contient un nom et une collection de nombres en tant que données. J'essaie de construire une classe qui lira le fichier, présentera uniquement les noms de tous les enregistrements, puis permettra à l'utilisateur de sélectionner les données d'enregistrement qu'il/elle veut..NET C# - Accès aléatoire dans les fichiers texte - pas facile?
La première fois que je parcours le fichier, je ne lis que les noms d'en-tête, mais je peux garder une trace de la 'position' dans le fichier où se trouve l'en-tête. J'ai besoin d'un accès aléatoire au fichier texte pour rechercher le début de chaque enregistrement après qu'un utilisateur le demande.
Je dois le faire de cette façon car le fichier est trop volumineux pour être lu complètement en mémoire (1 Go +) avec les autres demandes de mémoire de l'application.
J'ai essayé d'utiliser la classe .NET StreamReader pour ce faire (qui fournit une fonctionnalité 'ReadLine' très facile à utiliser, mais il n'y a aucun moyen de capturer la position réelle du fichier (la position dans la propriété BaseStream est biaisé en raison de la mémoire tampon de la classe utilise).
est-
Si la taille du fichier est supérieure à 1 Go et que vous exécutez le système sur 32 bits, l'espace d'adressage sera probablement insuffisant, même si Windows échange son cœur. –