在文件中搜索单词

时间:2018-12-03 13:59:34

标签: search erlang

我是erlang的新手,我想学习它。我想从文件中实现一个简单的单词搜索,如果它在文件中,则只应显示单词。

我是这样开始的:

readlines(FileName, Word) ->
 {ok, File} = file:open(FileName ,[read]),
    try get_all_lines(File, Word)
      after file:close(File)
    end.

 get_all_lines(File, Word) ->
  io:get_line(File, "") of eof  -> [];
  if word = searchWord -> display(word);
  true -> io:fwrite("no such word in file")
  end.

我正确地使用它还是应该尝试其他方法?还是有一个简单的实现?有人可以帮我吗?

P.S。对不起,我的英语不好

1 个答案:

答案 0 :(得分:0)

我不知道它是否足够好,但是您可以尝试读取文件然后将其拆分为文字

并检查列表中是否包含您通过的单词

readlines(FileName, Word) ->
    {ok, Data} = file:read_file(FileName),
    ListOfWords = binary:split(Data, [<<"\n">>, <<" ">>], [global, trim_all]),

    case lists:member(Word, ListOfWords) of
        true -> Word;
        false -> undefined
    end.

1> c(test).                                                                            
{ok,test} 
2> test:readlines("/home/tmp/some.txt", <<"Bin">>). 
undefined
3> test:readlines("/home/tmp/some.txt",<<"This">>).
<<"This">>