Как часто Вам приходилось считывать данные разделенные, например, запятой (формат CSV) из файла, обрабатывать их и что-то в дальнейшем с ними делать?
Конечно можно написать код самому, но это займет время и не всегда будет эффективно.
FileHelpers — модуль которые Вам поможет. Умеет синхронно или асинхронно считывать данные из файла в объект. Также может вписать данные обратно в файл с заданным разделителем. Может считывать данные из базы данных. Имеет еще кучу всяких возможностей, о которых можно узнать подробнее на официальном сайте этого модуля.
Вам необходимо создать класс, который описывает структуру данных файла:
А теперь асинхронно считываем данные:
Вот и все.
Конечно можно написать код самому, но это займет время и не всегда будет эффективно.
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.
Вот и все.