Pull to refresh

FileHelpers

Reading time2 min
Views3.7K
Как часто Вам приходилось считывать данные разделенные, например, запятой (формат 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 можно отсюда.
Tags:
Hubs:
Total votes 8: ↑6 and ↓2+4
Comments7

Articles