2012-05-25 96 views
1

我想跳過使用QStrings解析的文本文件中的註釋行。用QStrings跳過註釋行

如何跳過任何以'#'開頭的行?

這是我目前:

 QTextStream in(&inputFile); 
    QList<QStringList> lists; 
    QString inputLines; 

    do { 
      inputLines = in.readLine(); 
      lists << inputLines.split("\t"); 

     } while (!inputLines.isNull()); 
      . 
      . 
      . 
+2

這QString的功能,你有沒有嘗試過用找了解字符串'startsWith'的方式? – 2012-05-25 16:09:25

回答

2

只需使用QString::startsWith(QString)在下面的例子中處理它們像前行過濾:

QStringList lines = ...; 
foreach(QString line, lines) 
{ 
    line = line.trimmed(); // if you want to ignore whitespaces at both ends 
    if(!line.startsWith("#")) 
     processLine(line); 
} 
+0

我沒有完全按照原樣使用您的示例,但您和Roku建議的startsWith函數是我所需要的。謝謝! –

+0

如果只有一個字符,你也可以寫'line.length()&& line.at(0)=='#''這可能稍微快一點(注意在訪問索引0處的字符前檢查長度> 0)。但在大多數情況下,這並沒有什麼不同。 – leemes