行の長さが常に同じである場合は、次のようにすることができます。
inputFile.seek(inputFile.size - LENGTH_OF_LINE);
QString line = QString::fromLocal8Bit(inputFile.readLine());
または、QTextStream を使用してすべての行をループするだけです (これは、動的なサイズの行で機能します)。
QTextStream ts(inputFile);
QString line;
while(!ts.atEnd())
line = ts.readLine();
編集:
分割には、次を使用できます。
QStringList list = line.split(",");
double x,y;
if(list.size() == 2)
{
x = list.at(0).toDouble();
y = list.at(1).toDouble();
}else{
qDebug()<<"Line not having coordinates: "<<line;
}
編集:
両方を連結し、小さな編集を行うと、常に最後の行に対してのみ有効な結果が生成され、エラーで 0/0 座標が生成されます。
QTextStream ts(inputFile);
QString line;
while(!ts.atEnd())
{
QString temp = ts.readline();
if(temp.size()>2)
{
//having more then 2 chars (e.g. 8,6 as coordinates)
line = ts.readLine();
}
}
QStringList list = line.split(",");
double x = 0.0;
double y = 0.0;
if(list.size() == 2)
{
x = list.at(0).toDouble();
y = list.at(1).toDouble();
}else{
qDebug()<<"Line not having coordinates: "<<line;
}