File io 在Erlang中,我可以使用ets:tab2list而不包括嵌套元组的换行符吗?
我正在创建一个etsFile io 在Erlang中,我可以使用ets:tab2list而不包括嵌套元组的换行符吗?,file-io,erlang,ets,File Io,Erlang,Ets,我正在创建一个ets ets:new(myets,[duplicate_bag,public,named_table]). 我以以下格式输入数据: {120869,message,item1,item2,status1,success} {120869,message,item1,item2,status1,fail} {120869,action,message,{oldsetting,40},{newsetting,50}} {93195,model_status} 我想在文本文件中将
ets:new(myets,[duplicate_bag,public,named_table]).
我以以下格式输入数据:
{120869,message,item1,item2,status1,success}
{120869,message,item1,item2,status1,fail}
{120869,action,message,{oldsetting,40},{newsetting,50}}
{93195,model_status}
我想在文本文件中将每一行保存为单独的一行。我正以以下方式尝试:
Data = ets:tab2list(myets)
这使得:
[{120869,message,item1,item2,status1,success},
{120869,message,item1,item2,status1,fail},
{120869,action,message,
{oldsetting,40},
{newsetting,50}},
{93195,model_status}]
然后我使用io:format
保存到文件中
但是,我想知道是否有一种简单的方法可以将
myets
保存到文本文件中,而不在第三个元组中添加换行符(嵌套元组开始于oldsetting
和newsetting
)?好吧,一个简单的打印功能应该可以做到这一点:
print_list(List, File) ->
lists:foreach(fun(X) -> io:write(File, X), io:nl(File) end, List).
但是,如果您只想保存ets表,您可以使用
保存到\u dets/2
(并使用从\u dets/2打开它)。如果文件中有文件设备,则只需执行:
[io:format(File, "~p\n", [I]) || I <- Data].
[io:format(File,“~p\n”,[I])|I