2015-12-18 2 views
0

Я хочу читать .can файлы в Qt, я выяснил, что он похож на ini-файлы, поэтому я использовал QSettings::IniFormat, я ищу 2 атрибута (скажем, «rate» и «name»). кода:Чтение из .can файлов

for(int i=0; i<files.count();i++) 
 
     { 
 
      QSettings file(files[i], QSettings::IniFormat); 
 
      QStringList keys = file.allKeys(); 
 
      foreach(const QString& key, keys) 
 
      { 
 
      if(key.endsWith("/rate")) 
 
      { 
 
      QString Rate = file.value(key).toString(); 
 
      qDebug() << Rate; 
 
      } 
 
      if(key.endsWith("/name")) 
 
      { 
 
       QString name = file.value(key).toString(); 
 
       qDebug()<<name; 
 
      }

Проблема мои файлы тазы имеет много «имя» атрибут, поэтому этот метод возвращает все «имя» атрибуты. Я хочу сохранить атрибут «name», который программа находит сразу после «rate», до «rate» может быть атрибут «name», поэтому я просто хочу сохранить атрибут, который программа находит сразу после того, как находит «rate», ,

ответ

0

Я не знаю о .can файлах, я искал их немного, но ничего не мог найти о них, связанных с форматом ini.

В любом случае, я переписал ваш код для вывода самого первого найденного атрибута name после каждых rate.

bool rateAttrFound = false; 
for(int i=0; i<files.count();i++) 
{ 
    QSettings file(files[i], QSettings::IniFormat); 
    QStringList keys = file.allKeys(); 
    foreach(const QString& key, keys) 
    { 
     if(key.endsWith("/rate")) 
      rateAttrFound = true; 
     if(key.endsWith("/name")) 
     { 
      if(rateAttrFound){ 
       qDebug() << file.value(key).toString(); 
       rateAttrFound = false; 
      } 
     } 
    } 
} 
+0

Они не связаны, только формат похож на аналогичный. – user5603723

Смежные вопросы