defmodule Snapshot do NimbleCSV.define(MyParser, separator: ";") def mydir do "/winshare/Dati-lx/agol_csv/" end def leggi_stream(nome_file) do nome_file # READ_AHEAD) |> File.stream!(read_ahead: 1_000_000) |> MyParser.parse_stream() # |> Stream.map(fn [cod_staz, cod_grand, data_mis, valore, cod_valid, liv_validaz] -> # %{ # cod_staz: :binary.copy(cod_staz), # cod_grand: :binary.copy(cod_grand), # data_mis: :binary.copy(data_mis), # valore: String.to_float(valore), # cod_valid: :binary.copy(cod_valid), # liv_validaz: :binary.copy(liv_validaz) # } # end) end def files do files("*.csv") end def files(estensione) do Path.wildcard(Path.join(mydir(), estensione)) end def elabora(stream, quanti \\ 200_000) do stream |> Stream.chunk_every(quanti) |> Enum.each(fn lista -> send(self(), %{count: Enum.count(lista)}) end) end def l0 do files() |> Enum.reverse() |> hd end end