Tengo un archivo de texto que contiene varios 'registros' dentro de él. Cada registro contiene un nombre y una colección de números como datos..NET C#: acceso aleatorio en archivos de texto: ¿no es una forma fácil?
Estoy tratando de crear una clase que lea el archivo, presente solo los nombres de todos los registros y luego permita al usuario seleccionar qué datos de registro desea.
La primera vez que reviso el archivo, solo leo los nombres de los encabezados, pero puedo hacer un seguimiento de la "posición" en el archivo donde está el encabezado. Necesito acceso aleatorio al archivo de texto para buscar el comienzo de cada registro después de que un usuario lo solicite.
Tengo que hacerlo de esta manera porque el archivo es demasiado grande para leerlo completamente en la memoria (1GB +) con las otras demandas de memoria de la aplicación.
He intentado utilizar la clase .NET StreamReader para lograr esto (que proporciona una funcionalidad 'ReadLine' muy fácil de usar, pero no hay forma de capturar la posición verdadera del archivo (la posición en la propiedad BaseStream es sesgada debido a la memoria intermedia de la clase utiliza).
¿no hay manera fácil de hacer esto en .NET?
Si el archivo de más de 1 GB de tamaño, y se está ejecutando en 32 bits, es probable que se quede sin espacio de direcciones, incluso si Windows intercambia su pequeño corazón. –