20080327

Línea x línea: del archivo a la pantalla

En esta oportunidad utilizaremos la clase System.IO.StreamReader para leer un archivo de texto línea por línea y mostrar cada una en la consola del sistema. Para ello crearemos una aplicación tipo consola y lo primero que debemos hacer es incluir el espacio de nombres (namespace) System.IO.

Luego, en el método Main declaramos un objeto sr de tipo StreamReader y una variable linea de tipo string donde almacenaremos el valor de la línea que vayamos leyendo. Inicializaremos el objeto sr pasándole como parámetro la ruta del archivo que vamos a leer (en este caso: C:\archivo.txt). Esto automáticamente abrirá el archivo en modo lectura posicionará un apuntador al principio del mismo.

Leemos la siguiente línea del archivo ( linea=sr.ReadLine() ) mientras sea diferente de null y la escribimos en la consola mediante el método WriteLine() del objeto Console. Cada vez que se ejecute ReadLine(), el objeto sr devolverá la línea en donde está posicionado el apuntador y lo moverá a la siguiente.

Por último, cerramos el archivo mediante la instrucción sr.Close().

using System;
using System.IO;

namespace AplicacionConsola
{
class Program
{
static void Main()
{
StreamReader sr = new StreamReader(@"C:\archivo.txt");
string linea;
while((linea = sr.ReadLine()) != null)
{
Console.WriteLine(linea);
}
sr.Close();
Console.ReadKey(true);
}
}
}

La instrucción Console.ReadKey(true) permite detener la ejecución del programa hasta que se presione una tecla.

Trucos:

  • Pasar true como parámetro al método Console.ReadKey() hace que la tecla pulsada no tenga eco en la pantalla ;)
  • En C# las cadenas de caracteres funcionan igual que en C/C++/Java, por lo que para obtener \ debemos utilizar \\. Sin embargo, en C# existe la posibilidad de especificar que se tome el contenido de la cadena tal como está dentro de las comillas y esto se logra anteponiendo un @ a la literal.
  • Si no cerramos el archivo mediante sr.Close(), este quedará abierto en el sistema y podría ocasionar molestias a la hora de -digamos- mover el archivo a otra carpeta o intentar eliminarlo.

20080323

Acerca de C#

Comencemos por el principio, C# (léase si-sharp) es un lenguaje de programación orientado a objetos desarrollado por Microsoft para la plataforma .NET, y que luego fue aprobado como estándar por la ISO (International Organization for Standarization) y la ECMA (European Computer Manufacturers Association). Está diseñado para combinar el poder de los lenguajes de bajo nivel con la facilidad y rapidez de los lenguajes de alto nivel. Su sintaxis deriva de los lenguajes de programación C/C++ y Java y el númeral deriva de superponer ++ sobre ++ ;)

Actualmente el lenguaje sólo existe para plataforma .NET pero no sólo sobre Windows sino también en Linux, Solaris, Mac OS X and Unix con el proyecto mono patrocinado por Novell.