Colaboraciones en el Guille

FileHelpers 1.2.0

Librería para importar automáticamente archivos con registros de tamaño fijo o separados por algún caracter.

Fecha: 13/Dic/2005 (09-12-2005)
Autor: Marcos Meli (Home Page)

 


Los FileHelpers son una librería muy fácil de usar para importar / exportar archivos para o desde programas hechos en .NET.

Cuenta además con opciones para importar archivos desde / para una base de datos Sql Server o MSAccess.

La idea es muy simple: definir una clase con la estructura que tiene cada registro y agregar un poco de metadata (en forma de atributos de .NET) para especificar los conversores y demás características.

Las FileHelpers pueden ser útiles en varias situaciones, por ejemplo, para hacer parsing de archivos de log, para aplicaciones OLAP o de Datawarehouse, comunicación entre sistemas... para todos estos casos y muchos más esta librerí les será de gran utilidad.

Veamos primero un ejemplo sencillo para aclarar las cosas

Ejemplo Rápido (en Ir a Paso 1Ir a Paso 2Ir a Paso 3Ir a Paso 4 pasos)

Para empezar a usar los FileHelpers debemos agregar una referencia al archivo FileHelpers.dll. Tip: tratar de dejar el archivo FileHelpers.xml para que funcione el Intellisense del VS.NET.

Luego debemos escribir la clase que mapea con los registros, si el archivo a leer o escribir tiene, por ejemplo, el siguiente formato...

10248|VINET|04071996|32.38
10249|TOMSP|05071996|11.61
10250|HANAR|08071996|65.83
10251|VICTE|08071996|41.34
...............
 

La clase que debemos escribir es la siguiente:

[DelimitedRecord("|")]
public class Orders
{
    // No se necesitan conversores para los tipos básicos
    public int OrderID;

    public string CustomerID;

    [FieldConverter(ConverterKind.Date, "ddMMyyyy")]
    public DateTime OrderDate;

    public decimal Freight;
}

Para leer y escribir archivos debemos crear una instancia de la clase FileHelperEngine y usarla de este modo:

FileHelperEngine engine = new FileHelperEngine(typeof(Orders));

/// Para leer usamos:
Orders[] res = (Orders[]) engine.ReadFile(@"C:\TestIn.txt");

/// Para escribir usamos:
engine.WriteFile(@"C:\TestOut.txt", res);

Ahora en la variable res tenemos un arreglo donde cada item es un registro del archivo original y no tuvimos que hacer nada para convertir entre string y los diferentes tipos que tiene el registro !!!
Podemos hacer entonces cosas como:

foreach (Orders order in res)
{
    Console.WriteLine("Información del pedido:");
    Console.WriteLine(order.CustomerID + " - " + 
                 order.OrderDate.ToString("dd/MM/yy"));
}

Algunas Caracteristicas de los File Helpers:

Usos básicos de la librería:

Desde / Hasta archivos de texto contra arreglos de .NET tanto C# como VB.NET

Entre archivo de texto y Bases de Datos Sql Server y MS Access (próximamente ExcelDataLink)

 

Diagrama de clases de la librería

Aqui hay un diagrama de clases que clarifica un poco como esta estructurada la libreria con respecto a los DataLinks.

Diagrama de Clases

Problemas o Sugerencias

Visiten mi página en http://www.marcosmeli.com.ar/
Saludos y a seguir programando !!!

 


Fichero con el código para VS 2003: Marcosdotnet_FileHelpers_1_2_0_vs2003.zip - 225 KB

Fichero con el código para VS 2005: Marcosdotnet_FileHelpers_1_2_0_vs2005.zip - 227 KB

Ayuda SDK en CHM con muchos ejemplos: Marcosdotnet_FileHelpers_1_2_0_chm.zip - 227 KB

Página Web en Source Forge .net - Documentación OnLine con más ejemplos


ir al índice principal del Guille