2017-03-10 9 views
0

구성 파일에서 문자열을 검색하려고하며 문자열 일치로 키/값 쌍을 삭제하려고합니다. 파일에서 qstringlist를 가져 왔습니다. 는 지금까지 내 노력 코드로구성 파일에서 키/값 쌍 삭제 qsetting

int main(int argc, char *argv[]) 
{ 
     QSettings* settings= new QSettings("/home/sidheshwar/Desktop/temp.txt", QSettings::IniFormat); 

     settings->beginGroup("Profiles"); 
     const QStringList childKeys = settings->childKeys(); 

     QStringList Keys; 
     QStringList values; 
     QString user="db-host"; 
     QString tempUser; 


     foreach (const QString &childKey, childKeys) 
     { 
      Keys << childKey; 
      values << settings->value(childKey).toString(); 
     } 

for(int i=0;i< Keys.length();i++){ 
    if(user == values.at(i)){ 
     qDebug() << " keys" << Keys[i] << endl; 
tempUser=Keys[i]; 

    } 
     qDebug() << " tempUser" << tempUser << endl; 


} 
     return 0;} 

어떻게 내가 당신에게 구성을 처리하는 파일에서 데이터를 삭제하는 방법의 예를 보여 다음 예에서

+1

후 I는이') (분리 기능 및 I 시도 아무 문제가 없었다 – eyllanesc

+0

실제로 그것 나를 위해 일하지 .. 당신이 참조한 모든 문서 링크 또는 어떤 코드 – zodango

답변

0

settings->remove(tempUser);를 사용할 수 있습니다. 실행하기 전에

temp.ini

[Profiles] 
key1=db-host 
key2=value2 
key3=value3 

MAIN.CPP

#include <QCoreApplication> 
#include <QSettings> 
#include <QDebug> 

int main(int argc, char *argv[]) 
{ 
    QCoreApplication a(argc, argv); 

    QSettings* settings= new QSettings("temp.ini", QSettings::IniFormat); 

    settings->beginGroup("Profiles"); 
    const QStringList childKeys = settings->childKeys(); 

    QStringList Keys; 
    QStringList values; 
    QString user="db-host"; 


    foreach (const QString &childKey, childKeys) 
    { 
     Keys << childKey; 
     values << settings->value(childKey).toString(); 
    } 

    for(int i=0;i< Keys.length();i++){ 
     if(user == values.at(i)){ 
      qDebug() << " keys" << Keys[i]; 
      settings->remove(Keys[i]); 
     } 
     qDebug() << Keys[i] << values.at(i); 
    } 


    return a.exec(); 
} 

출력 :

temp.ini 실행

[Profiles] 
key2=value2 
key3=value3 
+0

감사합니다 – zodango