In un recente progetto .NET ho avuto la necessità di processare file di testo contenenti dati di ingresso e, ad elaborazione terminata (nel mio caso invocando un web service con in input i dati appena letti), di costruire file testuali, da fornire come output dell'applicazione batch.
Mi sono così imbattuto in
un'interessante libreria .NET open source per l'elaborazione import/export di file testuali contenenti dati a lunghezza fissa o a record delimitati:
FileHelpers.
La libreria è davvero semplice ed intuitiva da usare: l'utente deve definire una classe in grado di rappresentare il record elementare e, attraverso l'uso di attributi di classe o di proprietà, associare la classe stessa al meccanismo di processamento in input o in output del file testuale.
Nel caso di file di record con campi a lunghezza fissa, lo sviluppatore deve associare alle varie
property attributi che rappresentano lunghezza delle colonne e tipo del dato. Nel caso di file di record con delimitatori, occorre invece usare l'attributo di classe con cui definire il delimitatore di riferimento. Fatto questo, non resta che invocare il motore fornito dalla libreria per il processamento del file di input, e la produzione di un array di oggetti .NET tipizzato o, viceversa, per la costruzione di un file di output a partire da sorgenti dati .NET.
Tra le funzionalità più avanzate,
FileHelpers fornisce il
supporto nativo per Microsoft Excel, mette a disposizione
meccanismi di comparazione dei file,
supporta la visione multipla o master-detail, il tutto condito da una
documentazione davvero buona, fatta di casi d'uso e comprensiva di esempi pratici per ciascuna funzionalità.