FileHelpers Versions Save

The FileHelpers are a free and easy to use .NET library to read/write data from fixed length or delimited records in files, strings or streams

3.5.2

1 year ago

Braking changes

Added features

Fixed bugs

  • #416, #425: Fixed documentation for passed stream argument in read operations

3.5.1

2 years ago

Braking changes

Added features

Fixed bugs

#413, #412 Fixed creation of Culture in .Net 6

3.5.0

2 years ago

Braking changes

Added features

#363 Provide a setting to control how fixed-length fields are truncated

Fixed bugs

#389 Fixed typo in error message #256, #263, #391 Fixed events when reading / writing with MultiRecordEngine

Other

#263 Hint, that INotifyRead and INotifyWrite need a EventEngineBase to work #365 Typo in SameFieldOrder

Technical

#387 FSharp tests are in main test assembly included #383, #384 Upgrade projects to SDK style #385 Examples are in build again

3.4.2

3 years ago

Braking changes

Added features

Fixed bugs

#337 Update Package Information #365 Typo in SameFieldOrder #369 Fixes in exception messages #271 Memory leak in FileHelpers #343 Allowing other to write to file

v2.0

3 years ago

The library has passed its 1st birthday !!! and thanks to the work and contribution of a lot of people (partial list of them) Too many things were changed, mostly internally, now we have a performance gain of more than 60% in .NET 2.0 I will be releasing the version for .NET 1.1 because I know that a lot of people use it in some corporations, but maybe in the next releases the new features will be .net 2.0 only. It's a massive job maintain and optimize both =( versions There are also a lot of major changes, refactoring in the code, and a big core rewrite that allow the engines to use less memory and temporary string (we are using more buffers to avoid this) We were very busy to keep to library updated and to give support to the users. Check the forums for any problems as it's likely they have been addressed here. We have our own domain www.filehelpers.com thanks to (Antoine) and a DevBlog. Here do you have all the stuff that keep me busy for a while :P

Breaking Changes

  • The constructor of the MultiRecordEngine was changed to allow params args, and to allow users to not pass the RecordSelector (in write operations where it was not needed).
  • EndsRead and EndsWrite deleted, now you have a Close() operation to simplify the API and to make it similar to the System.Data namespace. (The async engines also implement IDisposable).
  • Rename FileHelperException --> FileHelpers Exception a better name =) and an easy to solve problem.
  • By default the numeric fields in the FixedLengthRecords that don't have an [FieldAlign] will be aligned to the right and the rest the left by default, with this we avoid the problem of generate files with different meaning when reading and writing.

Performance related

  • Internal use of Reflection.Emit, Dynamic Methods and char buffers to get more than 50% enhancement in performance and for .NET 2.0 more than 65%
  • The Read..AsDT methods now creates the DataTable record by record, not at the end, so you can handle large files without any memory overload
  • No more reflection in the operations (only in the constructors).
  • FieldSorter faster too, Removed REFLECTION for EMIT

Shining new features

  • The very cool DelimitedFileEngine and FixedFileEngine that allow to change options at RunTime (also with generic versions) Check an example here
  • ConditionalRecords you can easily include or exclude certain records based on a RecordCondition (like BeginsWith, EndsWith, Contains or RegEx) Check the example
  • A new GenericDatabaseStorage to allow databases use ADO.NET to work with the FileHelpers (Thanks Rodolfo Finochietti)
  • Experimental Mono project Support (some users are already using it, we hope that in the next release we have a completely working version for this framework)
  • New version checker in the demos and wizard (both with a renewed look and feel) Check the movies
  • .NET 2.0 Nullable Types support. (Thanks Vijayan) Check the example
  • Notification Interfaces: you can now get notified of the events simply implement them
  • Enhanced Debugging in .NET 2.0 with DebuggerDisplay and DebuggerBrowsable, DebugVisualizars to come.
  • The wizard has a record class test that allows you to introduce sample data and your class and check for errors or results.
  • You can check our screencasts for the demos, wizard and other features of the library.
  • Now the code for Vs2003 and Vs2005 are both on SVN, sharing the same files and the build script autodetect your Visual Studio installation. So no more excuses time to get involved =)
  • The engines with asynchronous operations are now IDisposable and IEnumerable so you can declare it with using(..) and use them in a foreach loop

API changes and extensions

  • The write methods are less strict. You can pass now an IEnumerable instead of an array, so you can directly pass a List or ArrayList to the method without doing a ToArray()
  • RunTime records can now get a DataTable in the constructor and use DataColumns to create one field for each column.
  • Generic versions of near all the engines of the library (it is really hard to maintain the two copies :P so everyone it is time to port !!)
  • Asynchronous operations in others engines like the MultiRecordEngine
  • Event support to the MultiRecordEngine thanks to the contribution of Francis de Fouchier
  • The library now handles infinite levels of inheritance adding the high level fields first in the result record class.
  • Allow to ignore spaces and tabs in the IgnoreEmptyLinesAttribute
  • IgnoreCommentedLines thanks to MCampbell
  • The Read methods now have a maxRecords args to tell to the engines how much them must read.
  • A new constructor overload to the engine that allow to pass the Encoding. This is useful to make the users aware of the Encoding feature.
  • FileTransformEngine with two new methods ReadAndTransformRecords and TransformRecords
  • Flush method to AsyncEngines to allow users to ensure data is written. For example, if they are using the library for logging.
  • The converters are now smarter as they validate to which types can be assigned and throw exceptions if converter is wrong (for example if you use ConverterKind.Decimal in a int field)
  • The ConvertException has a lot of context information: LineNumber, ColumnNumber, FieldName. Also better exception messages.
  • The integer converters receive now take a decimal separator to build an InvariantCulture to format and parse the values and strings

Small changes

  • Fixed the problem with ASP.NET: "Line 0: Metadata file 'filehelpers.dll' could not be found"
  • Fixed some problems with the CsvClassBuilder (it is a good practice to not to release the last minute added features)
  • The assemblies are now signed
  • The new ConverterBase.DefaultDateTimeFormat to avoid set the converter format field by field =)
  • Some error messages from the library were rewritten and now provides more contextual information (line and column numbers, field name, etc).
  • ExcelStorage supports more than 26 columns (thanks to Mark Izendooren)
  • Encoding support to the CsvEngine
  • The wizard remembers all the paths now
  • SkipThisRecord in the AfterReadRecordEventArgs, this allows engine to skip records from the results (thanks Crestline)
  • More methods for the CommonEngine
  • More than 420+ NUnit tests !!! (I cant believe it, I'm a lazy developer but I know how much value you get out of testing the library)
  • You now have two versions for the demos, one for each framework version.
  • The FixedLengthClassBuilder has more constructors to set the length of the fields in your instruction
  • Improved documentation. (Thanks Antoine and Matt)
  • A lot of new examples check it out !!

3.4.1

4 years ago

Braking Changes

Added Features

Fixed bugs

  • #291, #354 Excel NPOI Missing values are written as blank cells

3.4.0

5 years ago

Braking Changes

  • Removed support for Excel via COM Interop FileHelpers.ExcelStorage. We will not publish any new version of this package. Please use FileHelpers.ExcelNPOIStorage instead.

Added Features

  • #331 Handle auto-properties used in F# correctly
    • Please notice that currently auto-properties in VB.Net are not supported (#201)
  • #315, #316 Added support for setting NewLine string for files produced by FileHelperAsyncEngine, MultiRecordEngine and MasterDetailEngine.
  • #308, #86 Added Recordtype to ErrorInfo
  • #306 Customizable CultureInfo at field and record level
  • #273, #280 Removed Obsolete attribute on some methods in FileHelperEngine. Those attributes were introduced in release 3.2.7.

Fixed bugs

  • #252, #332 Allow reading Excel files from stream

3.3.0

5 years ago

Breaking changes

  • Removed nuget package for .NET Framework 3.5. In this release we have started to ship the main parts of the library for .NET Standard 2.0. Some reflection based uses now APIs that were not present with the .NET Framework 3.5.

Features

  • Support for .NET Standard 2.0. That means that you can use FileHelpers from your .NET Core 2.0 or UWP apps (#286, #295, #298, #300). Some parts of FileHelpers are not compiled to .NET Standard 2.0:
    • DataLink
    • Ability to generate a type at runtime: ClassBuilder and CsvClassBuilder
    • SmartFormatDetector
    • both FileHelpers.ExcelNPOIStorage and FileHelpers.ExcelStorage

Fixed bugs

  • #268 Typo in error message

Technical

  • #294 Using MsBuild 15 and Visual Studio 2017 to build project

3.2.7

6 years ago

Hi everyone again

After more than two years, we are proud to release FileHelpers 3.2.7! Thanks to all the contributors and testers!

The packages are available on nuget.org.

We have invested lots of effort in the automatic creation and publishing of NuGet packages. This should allow us to publish more often and with less effort in the future.

Thank you for your patience and for using FileHelpers,

Marcos Meli & Matthias Cavigelli

Breaking changes & deprecated features

  • Removed nuget Package for .NET Framework 2.0. We are not building against .NET Framework 2.0 any longer. We would like to be able to use LINQ, which was not in .NET Framework 2.0.

Reduce API surface of the library and clean types

  • Methods on FileHelperEngine that return a list
    • #102, #145, #153 (jboyer2012): instead use methods that return an array and then apply the extension method ToList() on it. Methods are marked as obsolete and workaround is described.
  • Methods on FileHelperEngine that return a DataTable
    • #147 (jboyer2012): instead use the extension method ToDataTable. Methods are marked as obsolete and workaround is described.

Features

  • #170 (Giuseppe Lipolis): Autoproperties full support!
    • It seems that this is not working yet with VB.Net Code (see #201 )
  • #85, #156 (neildboson-au): Add FieldCaption attribute (neildobson-au) Adds the ability to create user-defined column names in generated files.
  • (Jiri Formacek) Added ability to write enum as number in EnumConverter
  • (Jiri Formacek) Expose new line delimiter when writing to file
  • #226, #227 (consulting, Marcos Meli): expose CommandTimeout in DatabaseStorage
  • #198 (Rob De Carteret): Auto assign block size in BigFileSorter

Analyzer

  • #158 (raymegal): Analyzer to change IComparableRecord to IComparable.
  • (Marcos Meli): Record type analyzer

Fixed bugs

  • #217 (Marc Lopez): RecordInfo can remove multiple fields in an autoproperty class
  • #186 (Marcos Meli): Fix of Enumerator usage in FileHelperAsyncEngine
  • #157 (Marcos Meli): Removing last field from options does not reset the lastField property
  • #178, #179, #180, #181, #182 (Stephen Moon): Documentation fixes

Internals

ExcelNPOI Storage

  • #209 (juancfigueroa): Using XSSFWorkbook for files ending in "xlsm".
  • Increased buffer size in FileHelperEngines when reading or writing

3.1.5

8 years ago

Yes after a some hard months of work here the final 3.1 release !!

Check out new redesigned Home Page www.filehelpers.net

With ton of examples, tips, and updated docs

This version is production ready and the recommended version

Install it from NuGet (recommended):

Install-Package FileHelpers

Or you can download the zip package with:

  • The library for all versions of .net
  • The Wizard
  • Offline Help chm file

Analyzer

We recommend you to install the Roslyn Analyzer that helps you to use the library in the right way.

analyzer