Bonjour,

j'ai inclus dans un fichier ressource de mon projet, 3 fichiers liés à Hunspell :
Nom : ressource.png
Affichages : 237
Taille : 5,1 Ko
fr_FR.* ne sont ouverts qu'en lecture seule.
usrDict.txt est copié en xxDict.txt (xx étant les initiales de l'utilisateur). C'est le dictionnaire perso de l'utilisateur xx. le fichier usrDict.txt contient initialement la ponctuation qui ne figure pas dans fr_FR.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
QFile *mFileUsr;
mFileUsr = new QFile(gDirDico+QDir::separator()+gUSabrv+"Dict.txt");
if (! mFileUsr->exists()) {
    QFile::copy(":/dico/dictionary/usrDict.txt", gDirDico+QDir::separator()+gUSabrv.toLower()+"Dict.txt");
    [...]
}
Lorsqu'un utilisateur ajoute des mots dans son dictionnaire, le code initial est :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
if(!_userDictionary.isEmpty()) {
    QFile userDictonaryFile(_userDictionary);
     if (userDictonaryFile.open(QIODevice::Append)) {
        QTextStream stream(&userDictonaryFile);
        stream << word << "\n";
        userDictonaryFile.close();
     } 
     else
         [...]
A chaque utilisation de cette portion de code, j'ai une erreur (ie on passe par else). Pour une raison que j'ignore l'attribut du fichier copié est en lecture seule !? alors que le fichier original ne l'était pas évidemment.

J'ai modifié le code ainsi.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
if(!_userDictionary.isEmpty()) {
    QFile userDictonaryFile(_userDictionary);
    if(!userDictonaryFile.setPermissions(QFile::ReadOwner|QFile::WriteOwner|QFile::ExeOwner|QFile::ReadGroup|QFile::ExeGroup|QFile::ReadOther|QFile::ExeOther)) {
        qDebug("Erreur");
        return;
    }
    if(userDictonaryFile.open(QIODevice::Append)) {
        QTextStream stream(&userDictonaryFile);
        stream << word << "\n";
        userDictonaryFile.close();
     } 
    else
        [...]
J'avais peur de rencontrer éventuellement un problème d'encodage [les 3 fichiers sont encodés nativement en ANSI] mais je ne m'attendais pas à ce problème. C'est curieux, non ? Placer un fichier en ressource modifie ses attributs ? Pourquoi ?

Cordialement. AD.