• Viernes 1 de Noviembre de 2024, 13:29

Autor Tema:  Leer Siguiente Linea De Fichero De Texto  (Leído 926 veces)

fang-wei

  • Nuevo Miembro
  • *
  • Mensajes: 1
    • Ver Perfil
Leer Siguiente Linea De Fichero De Texto
« en: Martes 14 de Agosto de 2007, 15:03 »
0
Buenas!

He estado mirando en un libro de C sharp asi como en diversos foros pero no encuentro la manera de hacer lo que busco ....
A ver si me podeis echar una mano :)

El programa que realizo controlara un robot, para ello he de leer los comandos que vienen dados en un fichero. Cada linea del fichero tiene comandos dirigidos a un motor del robot.
i.e. una linea contiene: MOVE  <nombre motor> <direccion> <velocidad> <distancia>
otra STOP <nombre motor>

etc.

Como las acciones son secuenciales solo quiero leer una linea del fichero cada vez que acceda a la funcion leer fichero .

Cada linea del fichero tiene un tamanyo diferente pues los campos no son los mismos para cada comando, asi pues hasta encontrar la \n de final de linea, cada vez que lea una linea guardare en un string[] los diferentes campos del comando a ejecutar sin incluir los espacios ....

lo que he hecho por desgracia no refleja lo que quiero hacer porque solo lee la misma linea del fichero ....

Este es mi codigo:

public static string[] Read(StreamReader sread) {

string[] aline = new string[20];

string line = sread.ReadLine();



if (line == null) { aline = null; Console.WriteLine("end of file"); }
//EOF
else
{
line = line.Replace('\t', ' ').Trim();

const char space = ' ';
const char end = '\n';
char[] delimiters = new char[]
{
space,
end
};

foreach (string subString in line.Split(delimiters))
{
aline = subString;
i++;
}
}
return aline;

}


Yo creo que tiene que haber alguna manera simple de acceder cada vez a la linea siguiente del fichero pero lo unico que se me ocurre es bastante artificioso:
 utilizar sread.Read, contar el numero de caracteres de cada linea, poner un contador, guardarlo todo en el buffer de caracteres, pasar el buffer de caracteres a un string cada vez q haya un espacio ... etc

la verdad me extranya q no haya una forma mas "limpia" de hacerlo....

Cualquier ayuda se agradece!!!

Muchas gracias de antemano :)