如何从txt文件Qt中读取特定行?

时间:2019-07-17 10:36:07

标签: c++ qt line

我正在编写一个读取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 ();

1 个答案:

答案 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();
}

当然,它假定您要从第一行到文件末尾读取五行之一。