2016-05-05 86 views
0

我有一個csv文檔,其中有不同的輸入,我只想要每行中的第一個條目。因此,我通過設置「:」作爲第一個()分隔符來嘗試使用subString。但該程序讀取每個條目兩次,我做錯了什麼?Qt - 將csv文檔讀取到QListWidget

Sreenshot of program

Screenshot of CSV document

if (getin.open(QFile::ReadOnly)) { 

    items = getin.readAll(); 

    rowOfData = items.split("\n"); 
    getin.close(); 

} 
for (int x = 0; x < rowOfData.size(); x++) 
{ 
    rowData = rowOfData.at(x).split(",").first().split(":"); 


    for (int y = 0; y < rowData.size(); y++) 
    { 
     ui->itemListWidget->addItem(rowData.first()); 
    } 
} 

回答

0

的錯誤是在最後一個循環。列表rowData包含2個元素(例如[「巧克力」,「maj 2016」]),並且遍歷列表中的第一個元素,以便創建兩個項目。 Yuo不需要迭代列表,只需要第一個元素。

if(!rowData.isEmpty) 
    ui->itemListWidget->addItem(rowData.first()); 
+0

我把這個行:if,但在程序的輸出是一樣的(rowData.isEmpty()!)。 編輯 - 我刪除了第二個循環,它的工作原理。 – giggitygoat

+0

但你必須刪除循環! (替換爲(int y = 0; y Fabio