0

次の形式でデータを読み込んでいます。

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

「voltage.dat」ファイルには、文字列に変換される単一の値があります

" 9.9944639227844667e-001\n". Voltsこれを変数に割り当てる必要があります。

後で string_to_float 関数を使用するには、スペースを取り除き、\n 区切り記号を削除する必要があります。

string:stripstring:substrおよびre: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 に答える