2 people like it.
Like the snippet!
read CSV with .net FileHelpers library
example to use the open source .net FileHelpers library to read a CSV ( http://filehelpers.sourceforge.net/ ).
csv example with no exception error
field1,field2,field3
123,123,aaa
456,123,aaa
example with exception where the functions returns an empty array
field1,field2,field3
123,aaa,aaa
456,123,aaa
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
|
open FileHelpers
[<DelimitedRecord(",")>]
[<IgnoreFirst(1)>]
type CsvRecord =
class
val field1 : string
val field2 : int
val field3 : string
end
let engine = new FileHelperEngine<CsvRecord>()
let res =
try
engine.ReadFile("test.csv")
with
| :? FileHelpers.FileHelpersException -> Array.empty<CsvRecord>
|
namespace FileHelpers
Multiple items
type DelimitedRecordAttribute =
inherit TypedRecordAttribute
new : delimiter:string -> DelimitedRecordAttribute
member Separator : string with get, set
Full name: FileHelpers.DelimitedRecordAttribute
--------------------
DelimitedRecordAttribute(delimiter: string) : unit
Multiple items
type IgnoreFirstAttribute =
inherit Attribute
new : unit -> IgnoreFirstAttribute + 1 overload
member NumberOfLines : int with get, set
Full name: FileHelpers.IgnoreFirstAttribute
--------------------
IgnoreFirstAttribute() : unit
IgnoreFirstAttribute(numberOfLines: int) : unit
type CsvRecord =
val field1: string
val field2: int
val field3: string
Full name: Script.CsvRecord
CsvRecord.field1: string
Multiple items
val string : value:'T -> string
Full name: Microsoft.FSharp.Core.Operators.string
--------------------
type string = System.String
Full name: Microsoft.FSharp.Core.string
CsvRecord.field2: int
Multiple items
val int : value:'T -> int (requires member op_Explicit)
Full name: Microsoft.FSharp.Core.Operators.int
--------------------
type int = int32
Full name: Microsoft.FSharp.Core.int
--------------------
type int<'Measure> = int
Full name: Microsoft.FSharp.Core.int<_>
CsvRecord.field3: string
val engine : FileHelperEngine<CsvRecord>
Full name: Script.engine
Multiple items
type FileHelperEngine =
inherit FileHelperEngine<obj>
new : recordType:Type -> FileHelperEngine + 1 overload
Full name: FileHelpers.FileHelperEngine
--------------------
type FileHelperEngine<'T (requires reference type)> =
inherit EventEngineBase<'T>
new : unit -> FileHelperEngine<'T> + 1 overload
member AppendToFile : fileName:string * record:'T -> unit + 1 overload
member ReadFile : fileName:string -> 'T[] + 1 overload
member ReadFileAsDT : fileName:string -> DataTable + 1 overload
member ReadFileAsList : fileName:string -> List<'T> + 1 overload
member ReadStream : reader:TextReader -> 'T[] + 1 overload
member ReadStreamAsDT : reader:TextReader -> DataTable + 1 overload
member ReadStreamAsList : reader:TextReader * maxRecords:int -> List<'T>
member ReadString : source:string -> 'T[] + 1 overload
member ReadStringAsDT : source:string -> DataTable + 1 overload
...
Full name: FileHelpers.FileHelperEngine<_>
--------------------
FileHelperEngine(recordType: System.Type) : unit
FileHelperEngine(recordType: System.Type, encoding: System.Text.Encoding) : unit
--------------------
FileHelperEngine() : unit
FileHelperEngine(encoding: System.Text.Encoding) : unit
val res : CsvRecord []
Full name: Script.res
FileHelperEngine.ReadFile(fileName: string) : CsvRecord []
FileHelperEngine.ReadFile(fileName: string, maxRecords: int) : CsvRecord []
Multiple items
type FileHelpersException =
inherit Exception
new : message:string -> FileHelpersException + 2 overloads
Full name: FileHelpers.FileHelpersException
--------------------
FileHelpersException(message: string) : unit
FileHelpersException(message: string, innerEx: exn) : unit
FileHelpersException(line: int, column: int, message: string) : unit
module Array
from Microsoft.FSharp.Collections
val empty<'T> : 'T []
Full name: Microsoft.FSharp.Collections.Array.empty
More information