[ Foro de C# ]

Dudas con ficheros de texto

25-Mar-2014 12:26
Fernando Fdez Cucala (+1)
3 Respuestas

Hola  Nacho;

Tengo una duda con relación al manejo de ficheros de texto .txt, el caso es que tengo un fichero de texto done en cada línea almaceno información referente a un dato en concreto y la meto en un array, para luego poder utilizar esos datos sin necesidad de andar leyendo el fichero.

La duda es que no se como decirle que cada linea es un registro, estoy utilizando la clase FileStrream..
ejemplo;

FileStream fichero = new FileStream("Datos.txt",FileMode.Open,FileAccess.Read);


// luego intento leer una línea

linea = fichero.Read(buffer,0,100); // aquí es donde me surge la duda ya que en el tercer parámeto pongo que lea 100 bytes pero yo no se a ciencia cierta el número de bytes en cada línea....

H_ay alguna manera de decirle que lea una línea hasta un retorno de carro?

Gracias


25-Mar-2014 14:18
Nacho Cabanes (+30)

Es que si es un fichero de texto, no debes usar un FileStream, sino un StreamReader.

Sólo tendría sentido usar FileStream si todas las líneas tuvieran exactamente la misma longitud. Si no, es un trabajo mucho más pesado de lo que debería ser.


27-Mar-2014 08:41
Fernando Fdez Cucala (+1)

Muchas gracias, utilicé StreamReader y me funcionó correctamente, en tu manual venían varios ejemplos muy sencillos de entender...

Pongo como lo hice por si a alguien le sirve, aunque ya digo que hay varios ejemplos muy claros en el manual de Nacho Cabanes...

 
try {
 
				// Se crea un flujo desde el fichero 
 
				StreamReader fichero = new StreamReader("Texto.txt");
 
				string linea;
 
				// Hacemos un bucle para leer hasta el final del fichero
 
				do{
 
                                   linea = fichero.ReadLine(); // leemos la siguiente linea del fichero
 
                               }
				while (linea !=null) ;
 
			} catch (IOException e) {
 
				// aqui hay que meter una ventana de error			
			} // end try
 
			flujo.Close(); // cerramos el fichero
 



28-Mar-2014 19:58
Nacho Cabanes (+30)

Cuidado... ese fuente no está todo lo bien revisado que debería: no compilará por dos motivos:

- Cierras "flujo" pero abres "fichero".

- "fichero" se declara dentro del bloque "try", así que no se podrá cerra fuera de él.






(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)