【发布时间】:2016-07-12 06:38:52
【问题描述】:
我正在尝试从文件中读取内容,然后将其组织成一个元组列表。我已将文件读入数字列表,但是它似乎在换行符后立即跳过数字,如何防止这种行为? 我保证是偶数个字符的文件。
-module(brcp).
-export([parse_file/1]).
parse_file(Filename) ->
read_file(Filename).
read_file(Filename) ->
{ok, File} = file:read_file(Filename),
Content = unicode:characters_to_list(File),
build_tuples([begin {Int,_}=string:to_integer(Token), Int end|| Token<-string:tokens(Content," /n/r")]).
build_tuples(List) ->
case List of
[] -> [];
[E1,E2|Rest] -> [{E1,E2}] ++ build_tuples(Rest)
end.
这是一个示例输入文件:
1 7 11 0
1 3 5 0 7 0
1 8 10 0 1 11
99 0
【问题讨论】:
-
我认为“列表推导”是一个很好的开始,尽管您只有一个列表可以开始并且您需要一个元组列表。同时,我坚信它是“元组”而不是“元组”
-
谢谢 :) 我单独读取并加载了数字,但是如果我遇到换行符,它会跳过紧随其后的数字 D:
-
你能添加一个输入数据的例子吗?我相信在这里使用erlang.org/doc/man/binary.html#split-2 会更有效,但如果不知道您实际阅读的内容,就无法提出解决方案。
标签: list erlang pattern-matching