
Как часто Вам приходилось считывать данные разделенные, например,
запятой (формат CSV) из файла, обрабатывать их и что-то в дальнейшем с
ними делать?
Конечно можно написать код самому, но это займет время и не всегда будет эффективно.
FileHelpers
- модуль которые Вам поможет. Умеет синхронно или асинхронно считывать
данные из файла в объект. Также может вписать данные обратно в файл с
заданным разделителем. Может считывать данные из базы данных. Имеет еще
кучу всяких возможностей, о которых можно узнать подробнее на
официальном
сайте этого модуля.
Пример асинхронного чтения данных из файла
Допустим у вас имеется следующий файл с данными разделенными символом "|":
10248|VINET|04071996|32.38
10249|TOMSP|05071996|11.61
10250|HANAR|08071996|65.83
10251|VICTE|08071996|41.34
...............
Вам необходимо создать класс, который описывает структуру данных файла:
[DelimitedRecord("|")] // Определяем разделитель
public class Orders
{
public int OrderID;
public string CustomerID;
[FieldConverter(ConverterKind.Date, "ddMMyyyy")]
public DateTime OrderDate;
public decimal Freight;
}
* This source code was highlighted with Source Code Highlighter.
А теперь асинхронно считываем данные:
FileHelperAsyncEngine engine = new FileHelperAsyncEngine(typeof(Orders));
engine.BeginReadFile("TestIn.txt");
// The engine is IEnumerable
foreach (Orders ord in engine)
{
// your code here
Console.WriteLine(ord.CustomerID);
}
engine.Close();
* This source code was highlighted with Source Code Highlighter.
Вот и все.
Скачать
Скачать FileHelpers v2.0 можно
отсюда.