Qt でテキスト ファイルを読み込めません。私のテキストファイルは次のようになります。
17,9001500000000 31,1151700000000 450 0 NaN NaN NaN NaN NaN NaN
1 1 1390309311,00000 0,999847695156391 0,999847695156391 0,999847695156391 0,999847695156391 0,999847695156391 0,999847695156391 0,999847695156391
1 2 1390309311,00000 0,999695413509548 0,999695413509548 0,999695413509548 0,999695413509548 0,999695413509548 0,999695413509548 0,999695413509548
等々..
データは空白で区切られています
最初の行: 最初の行の最初の列には、次の行に一般的に必要な情報が書かれています。最初の行のすべての列が使用されるわけではありません。いくつかの情報の後、列は「NaN」で埋められます。
次の行: ここに私のデータが配置されています。一行ずつ全部読みたい。最初の 3 列は、行の一般的な情報です。次の (300 列とします) には、3 つの異なる種類のデータ (100 の測定値のすべての種類) が入力されます。
だから私は自分のファイルを読みます: まず、最初の行を読むと、ファイル全体の一般的な情報を受け取りたいと思います。(info1, info2, info3, info4) 次に、次の行を空白で区切って読みました。
if (!File.open(QIODevice::ReadOnly | QIODevice::Text))
return false;
QTextStream in(&metFile);
QString line;
int linecount = 0;
double info1,info2,info3,info4;
double lineinfo1,lineinfo2,lineinfo3;
while (!in.atEnd()) {
if (linecount==0) {
in >> info1 >> info2 >> info3 >> info4;
linecount++;
}
else {
line = in.readLine();
QStringList lineparts = line.split(QRegExp("\\s+"));
lineinfo1=lineparts[0].toFloat;
lineinfo2=lineparts[1].toFloat;
lineinfo3=lineparts[2].toFloat;
for (int count=1; count<=100;count++) {
float data1=lineparts[count+2].toFloat();
float data2=lineparts[100+count+2].toFloat();
float data3=lineparts[2*100+count+2].toFloat();
}
linecount++;
}
}
これで、info1-4 が正しく読み取られます。しかし、その後、lineinfo1-3 と data1-3 (lineparts[0] など) が nan または 0 で埋められる?!
誰かが私を助けることができますか?
ありがとうございました!