【发布时间】:2016-04-30 23:36:03
【问题描述】:
我正在编写读取两个输入文件并检查第一个文件中的单词是否存在于第二个文件中的代码。我想通过进程消息传递来一一检查列表中的元素。
这是我的代码:
start()->
Pid2 = spawn(?MODULE,check2,[]),
spawn(?MODULE,check1,[Pid2]).
check1(Pid2) ->
{ok, Data} = file:read_file("input.txt"),
B = binary:split(Data, [<<" ">>], [global]),
K = [binary_to_list(Item) || Item <- B],
[Pid2 ! Element || Element <- K].
check2() ->
{ok,IoDevice} = file:open("check.txt", [read]),
L = string:tokens(io:get_line(IoDevice,""), "! ."),
receive
Element ->
case lists:member(Element,L)of
true ->
io:format(Element);
false ->
io:format("not_ok")
end
end.
问题是当我想发送列表的一个元素时,它只发送第一个元素。如何修改我的代码以发送所有字符串并检查它们?
【问题讨论】:
-
@Steve Vinoski:我在这个问题上扩展得更好,这是我的代码,我希望你能看到我的错误......
标签: erlang erlang-shell