Search code examples
vb.netfilehelpers

How to partition a file in Filehelpers


I'm trying to partition a file in 12.000 lines, using Filehelpers (3.0.39.0). Below follows my code:

       'Busca informações do Discador
        Dim dtDiscadores As New DataTable
        mensagemErro += ItauACCRepositorio.GetDiscadores(dtDiscadores, dtInicial, dtFinal)

        'DataTable->List
        Dim records = (From row In dtDiscadores.Rows
                       Select New ItauACCLayout.RetornoAcionamentoDiscador With {.DescricaoLinha = row("DCRLINHARQ")}).ToList()

        'Inicializa o motor do FileHelpers
        Dim engine As New FileHelperEngine(Of ItauACCLayout.RetornoAcionamentoDiscador)(Encoding.GetEncoding("iso-8859-1"))

        'Escreve o arquivo
        engine.WriteFile(String.Concat(_camArquivo, _nomArquivo, _extArquivo), records)

If my datatable (dtDiscadores) return more than 12.000 lines, i need to partition into 'N' files diferents!


Solution

  • You can just batch your records using the batch extension from MoreLinq.

     var batches = records.Batch(12000);
     var i = 0;
     foreach(var batch in batches)
     {
         i++;
         engine.WriteFile(String.Concat(_camArquivo, _nomArquivo + i.ToString(), _extArquivo), batch);
     }