我正在编写一个读取txt文件的程序。我想从文件中读取一些特定行并将其添加到ComboBox。 (在我的情况下是行号:1、6、11、16 ...)
我只有这个可以读取所有行。
if(file.open (QIODevice::ReadOnly | QIODevice::Text))
{
while(!stream.atEnd())
{
line = stream.readLine ();
if(!line.isNull ())
{
ui->ServersNames->addItem (line);
}
}
}
stream.flush ();
file.close ();
答案 0 :(得分:2)
根据我的说法,seek()只能将光标移动到特定位置值,因此您无法在不知道行尺寸的情况下转到特定行。
我唯一看到的解决方案是 @Botje 提出的解决方案。
根据您的代码 ,您可以编写:
if(file.open(QIODevice::ReadOnly | QIODevice::Text))
{
int nb_line(0);
while(!stream.atEnd())
{
line = stream.readLine();
if((nb_line % 5) == 1)
ui->ServersNames->addItem(line);
++nb_line;
}
file.close();
}
当然,它假定您要从第一行到文件末尾读取五行之一。