2017-03-10 1 views
0

J'essaie de rechercher la chaîne dans le fichier de configuration et si la correspondance de chaîne veut supprimer la paire clé/valeur. J'ai qstringlist à partir du fichier. aussi loin que mon code est essayéSupprimer la paire clé/valeur du fichier de configuration 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;} 

Comment puis-je utiliser settings->remove(tempUser);

+1

I essayé le 'supprimer()' fonction et I eu aucun problème – eyllanesc

+0

effectivement son ne fonctionne pas pour moi .. tout lien de document que vous avez référé ou tout code – zodango

Répondre

0

Dans l'exemple suivant, je vous montre un exemple de la façon de supprimer une donnée à partir du fichier qui gère la configuration.

temp.ini avant l'exécution.

[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(); 
} 

sortie:

temp.ini après l'exécution

[Profiles] 
key2=value2 
key3=value3 
+0

remercie son fonctionnement – zodango