0

我正在阅读以下格式的数据:

{ok,Volts} = file:open("voltage1.dat",read).

在“voltage.dat”文件中,有一个值被转换为字符串

" 9.9944639227844667e-001\n". 这应该分配给Volts变量。

为了稍后使用 string_to_float 函数,我需要去掉空格并删除 \n 分隔符。

我探索了使用string:strip,string:substrre:replace库函数。

当我尝试其中的每一个时,我使用变量 Volts 作为输入字符串,例如:

string:substr(Volts,3,18).

这不起作用。我认为这是因为我输入Volts变量的方式。

任何人都可以让我正确吗?

4

2 回答 2

3
{ok,Volts} = file:open("voltage1.dat",read).

只会打开文件;Volts 是文件描述符,而不是文件的内容。为了读取文件,您可以使用io 模块中的函数。除了读取整个文件然后解释之外,您还可以使用fread/3

1> {ok, V} = file:open("voltage.dat",read).
{ok,<0.34.0>}
2> io:fread(V,'',"~f").
{ok,[0.9994463922784467]}

如果您不想/不能这样做(也许您的文件格式更复杂),请记住字符串是列表,因此您可以使用filter/2和其他列表函数

于 2012-10-19T19:01:36.470 回答
0

如果您控制 in[ut 文件格式,您可以使用 file:consult/1 直接读取条款。

于 2012-11-05T07:42:22.363 回答