Я новичок в 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. Извините за мой плохой английский





Я не знаю, достаточно ли он хорош, но вы можете попробовать прочитать файл, а затем разделить его на слова
и проверьте, есть ли в списках слово, через которое вы проходите
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">>