我是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。对不起,我的英语不好
答案 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">>