我正在以下列格式阅读数据:
{ok,Volts} = file:open("voltage1.dat",read).
在'voltage.dat'文件中有一个值被转换为 字符串
" 9.9944639227844667e-001\n"
。这应该分配给Volts
变量。
为了稍后使用string_to_float函数,我需要删除空格 并删除\ n分隔符。
我已探索过使用string:strip
,string:substr
和re:replace
库函数。
当我尝试其中的每一个时,我使用变量Volts作为输入字符串,例如:
string:substr(Volts,3,18).
这不起作用。我认为这是因为我的方式
输入Volts
变量。
有人可以把我弄好吗?
答案 0 :(得分:3)
{ok,Volts} = file:open("voltage1.dat",read).
只会打开文件; Volts是文件描述符,而不是文件的内容。要读取文件,您可以使用io module中的函数。除了阅读整个文件然后解释,您可以使用fread/3:
1> {ok, V} = file:open("voltage.dat",read).
{ok,<0.34.0>}
2> io:fread(V,'',"~f").
{ok,[0.9994463922784467]}
如果您不想/可以这样做(可能您的文件格式更复杂),请记住该字符串是列表,因此您可以使用filter/2
和其他列表函数
答案 1 :(得分:0)
如果你控制in [ut文件格式,你可以使用file:consult / 1,它将直接读到这些术语。