CLR: .Net / Mono / Boo / Otros CLR > C#

 Problema De Stream ???

<< < (2/3) > >>

danijr78:
Por favor alguien puede solucionarlo? es urgente!!
Gracias por adelantado.

Diodo:
Hola

Debes arreglar varias cosas:

En primer lugar el null es un indicador de final de fichero y no de linea vacia, en tal caso para capturar la linea vacia puedes hacer cad.count y mirar si es igual a cero.

Por este motivo debes cambiar el bucle de lectura de lineas y poner algo asi:


--- Código: Text ---   while ((line = sr.ReadLine()) != null) {       // aqui ya puedes trabajar con cada linea del texto}   
Para procesar cada linea quitandole las comas y meterla en una estructura, yo me haria una funcion a la cual le pasas la linea como string y dentro de ella te separe cada substring y los monte en la estructura y te lo devuelva ya montado


--- Código: Text ---  struct Avion{      string nombre;      ......      ......}  while ((line = sr.ReadLine()) != null) {       Avion nuevoAvion=new Avion();           Avion=MontaEstructura(line);}   

Haciendo esto no deberias tener problemas

un saludo  :hola:

danijr78:
Mirando el debugger y probando me he dado cuenta que las 3 primeras lineas que lee del fichero son basura y a partir de la 4º ya lee el texto. El fichero es un .doc ... alguien sabe porque pasa esto?

danijr78:
Gracias Diodo pero el problema está a la hora de definir el StreamReader.
Me interesa un SR global que debo definir dentro de un método que sólo se ejecuta una vez y después quiero hacer uso de ese SR dentro de otro método LeerAvion.
En LeerAvion sólo hay que leer UNA línea y el problema esta aquí. Después el tratamiento de la línea no hay problema.

//METODO INICIAL
if(ofdFich.ShowDialog()==System.Windows.Forms.DialogResult.OK && ofdFich.FileName!="")
{            
   sr= new StreamReader(ofdFich.FileName);
....
//METODO LEERAVION
string cad;
string[] cpo;
cad=sr.ReadLine();//ERROR NULL REFERENCE
cpo= cad.Split(',');   
Avion av= null;
            
if( cpo[1].Trim().ToUpper().StartsWith("COM"))// ERROR INDICE ARRAY FUERA LIMITES

Diodo:
Eso a lo que llamas basura sera una mascara de formato, o encabezado del documento, algo parecido a lo que llevan los ficheros html.
Si intentas leer un fichero html como flujo de datos te encontraras con caracteres o palabras clave que son necesarios para que el documento sea interpretado por el navegador.
Asi que tendras que apañartelas para diferenciar lo que es "basura" , de la infomacion util para ti

Respecto lo del streamreader global no lo entiendo , sorry.

Navegación

[0] Índice de Mensajes

[#] Página Siguiente

[*] Página Anterior

Ir a la versión completa