Tengo un problema al ejecutar el siguiente código. 
El nombre del archivo se obtiene bien por el diálogo pero después algo falla con el stream...
private StreamReader sr; // variable de clase
private void miFich_Click(object sender, System.EventArgs e)
{         
   if(ofdFich.ShowDialog()==System.Windows.Forms.DialogResult.OK && ofdFich.FileName!="")
   {
      string nom = ofdFich.FileName;
      FPrincipal.ActiveForm.Text+= nom;         
      sr= new StreamReader(nom);         
      if(ap.suPista().estaLibre())
         leerAvion();
   }
}
public void leerAvion()
{         
   string cad=null;
   do
   {
      cad=sr.ReadLine();         
   }
      while(cad==null);         
   string[] cpo= cad.Split(',');
   Avion av= null;
--   if( cpo[1].Trim().ToUpper().StartsWith("COM"))// ERROR INDICE
                            // FUERA DE LIMITES                               
{...}   
}
La excepción se produce porque el Split solo guarda un string en cad y no existe cad[1].
En el debugger el contenido de cad al producirse la excepción es algo así:
      " \0\0\0\0\0 \0\0 \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\02 \0\0\0\0\0\0... (basura)
El contenido del fichero abierto es:
   Boeing 747, comer, Valencia, Madrid, 20:45, 1234
Boeing 747, com, Valencia, BCN, 20:56, 1234
Boeing 747, pasa, Valencia, Paris, 20:59, 123, 25
Algo debe estar mal pero no lo veo...