erlang for_each_file

%%============================================%%
%% 对文件进行遍历,以行为单位进行输出,没一行构成一个列表元素,
%% 最终拼成一个列表。 edit code by lgh
%%============================================%%

-module(for_each_file).
% -compile([export_all]).
-export([start/1]).

start(FileName) ->
    {ok, Bin} = file:read_file(FileName),
    L = binary_to_list(Bin),
    io:format("The File Prototype is -> ~p~n",[L]),   %% 文件原型列表
    find_word(L, []).

find_word([], Acc) ->
    io:format("The result is -> ~p~n",[lists:reverse(Acc)]),  %% 最终效果列表
    ok;

find_word(L, Acc) ->
    {Word, L0} = for_each_word(L, []),
    Acc0 = [Word | Acc],
    find_word(L0, Acc0).

%% 遇到换行符,返回单词和剩余的列表。
for_each_word([$\n | T], L) ->
    {lists:reverse(L), T};

for_each_word([H|T], L) ->
    for_each_word(T, [H|L]);

for_each_word([], L) ->
    {lists:reverse(L), []}.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值