2017-03-10 25 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みました問題なかった – 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

関連する問題