%% -module(act_2). -compile([export_all]). parse(Filename) when is_list(Filename) -> {ok, Bin} = file:read_file(Filename), parse(Bin); parse(Bin) when is_binary(Bin) -> parse(Bin, <<>>, [], []). parse(<<$\,, Rest/binary>>, <>, Line, Acc) -> parse(Rest, <<>>, [Field |Line], Acc); parse(<<$\r, Rest/binary>>, Field, Line, Acc) -> parse(Rest, Field, Line, Acc); parse(<<$\n, Rest/binary>>, Field, Line, Acc) -> FieldList = [Field | Line], parse(Rest, <<>>, [], [FieldList | Acc]); parse(<>, Field, Line, Acc) -> parse(Rest, <>, Line, Acc); parse(<<>>, <<>>, [], Acc) -> {ok, lists:reverse(Acc)}; parse(<<>>, Field, Line, Acc) -> parse(<<$\n>>, Field, Line, Acc).