Erreur d'ouverture de fichier c++
Résolu/Fermé
A voir également:
- Erreur d'ouverture de fichier c++
- Erreur 0x80070643 - Accueil - Windows
- Fichier rar - Guide
- Fichier host - Guide
- Comment ouvrir un fichier epub ? - Guide
- Comment réduire la taille d'un fichier - Guide
6 réponses
Char Snipeur
Messages postés
9813
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
3 octobre 2023
1 298
24 mars 2009 à 08:57
24 mars 2009 à 08:57
Salut.
quelques précisions supplémentaire : quelle version de QT, quel compilateur ?
Sous windows, le chemin absolue comporte normalement la lettre du lecteur. As tu essayé avec ?
Autre possibilité sur les vieux QT, il fallait utiliser le style windows de chemin, c'est à dire \ à la place de /
file = new QFile("C:\\resources\\variables2.txt");
Pour l'erreur sur ce fichier, comme tu l'ouvre en append, il devrais normalement te le créé, même si il ne le trouve pas. Si il ne le fait pas c'est vraiment que lui passe un mauvais chemin.
quelques précisions supplémentaire : quelle version de QT, quel compilateur ?
Sous windows, le chemin absolue comporte normalement la lettre du lecteur. As tu essayé avec ?
Autre possibilité sur les vieux QT, il fallait utiliser le style windows de chemin, c'est à dire \ à la place de /
file = new QFile("C:\\resources\\variables2.txt");
Pour l'erreur sur ce fichier, comme tu l'ouvre en append, il devrais normalement te le créé, même si il ne le trouve pas. Si il ne le fait pas c'est vraiment que lui passe un mauvais chemin.
Char Snipeur
Messages postés
9813
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
3 octobre 2023
1 298
23 mars 2009 à 08:54
23 mars 2009 à 08:54
file = new QFile(":/resources/variables2.txt");
C'est quoi ces ':' dans le chemin du fichier ?
Soit tu es sur Unix et ils ne servent à rien, soit tu es sous win et il manque la lettre du lecteur.
C'est quoi ces ':' dans le chemin du fichier ?
Soit tu es sur Unix et ils ne servent à rien, soit tu es sous win et il manque la lettre du lecteur.
N'insiste pas ! Char Snipeur a toujours raison... et c'est encore le cas.
D'autre part, au lieu d'utiliser les balises 'italique', utilise plutôt les balises 'code' (on trouve les balises: 'gras', 'italique', 'souligné', 'code', 'lien'), car, lorsque tu tombes sur une personne qui, comme moi, refuse de lire un code illisible, tu es sûr de ne pas avoir de réponse; mais si tu préfères l'italique, je respecte ton choix ;-)
D'autre part, au lieu d'utiliser les balises 'italique', utilise plutôt les balises 'code' (on trouve les balises: 'gras', 'italique', 'souligné', 'code', 'lien'), car, lorsque tu tombes sur une personne qui, comme moi, refuse de lire un code illisible, tu es sûr de ne pas avoir de réponse; mais si tu préfères l'italique, je respecte ton choix ;-)
Char Snipeur
Messages postés
9813
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
3 octobre 2023
1 298
>
Kaos
23 mars 2009 à 14:26
23 mars 2009 à 14:26
je sais pas vraiment pourquoi
Une partie du problème doit venir de là. Quand on ne sait pas ce qu'on fait, ça peut causer des problèmes à un moment ou un autre.
Montre moi un exemple de code avec une ouverture contenant ces ':' .
Et comme Loupious le dit, utilise les balises de code. Je me suis arrêté à la première ligne de ce que tu as mis.
Une partie du problème doit venir de là. Quand on ne sait pas ce qu'on fait, ça peut causer des problèmes à un moment ou un autre.
Montre moi un exemple de code avec une ouverture contenant ces ':' .
Et comme Loupious le dit, utilise les balises de code. Je me suis arrêté à la première ligne de ce que tu as mis.
Autant pour moi, j'ai pas vu de balise "code". Mais si j'enlève les ":", j'ai l'erreur du mauvais chemin...
Je vous met un bon résumé de mon code, pour m'excuser :)
Vu que j'ai les messages d'erreurs qui surviennent, le reste de la fonction n'est pour rien dans le problème...
Je vous met un bon résumé de mon code, pour m'excuser :)
QFile * file; file = new QFile("/resources/variables2.txt"); void TextEdit::keyPressEvent(QKeyEvent *e) { QFile file2(":/resources/variables2.txt"); if(!file2.exists()) { cout<<"Erreur dans le chemin de fichier"<<endl; } if(!file2.open(QIODevice::WriteOnly|QIODevice::Append)) { cout<<"Erreur lors de l'ouverture du fichier 2"<<endl; } if(!file->open(QIODevice::WriteOnly|QIODevice::Append)) { cout<<"Erreur lors de l'ouverture du fichier!"<<endl; }
Vu que j'ai les messages d'erreurs qui surviennent, le reste de la fonction n'est pour rien dans le problème...
Je suis sous windows. Les messages d'erreur sont ceux que j'affiche dans les "cout", et ce pour les deux fichiers. Les voila :
Erreur dans le chemin de fichier
Erreur lors de l'ouverture du fichier 2
Erreur lors de l'ouverture du fichier!
QFile::seek: IODevice is not open
La première n'y est plus si je rajoute les ":" devant le chemin. C'est a devenir fou, si vous voulez je vous montre mon code que j'utilise pour manipuler d'autres fichiers dans une autre classe, et qui marche très bien...
Erreur dans le chemin de fichier
Erreur lors de l'ouverture du fichier 2
Erreur lors de l'ouverture du fichier!
QFile::seek: IODevice is not open
La première n'y est plus si je rajoute les ":" devant le chemin. C'est a devenir fou, si vous voulez je vous montre mon code que j'utilise pour manipuler d'autres fichiers dans une autre classe, et qui marche très bien...
Aux deux tiers, rien de surprenant:
1) Erreur dans le chemin de fichier
normal qu'iol ne trouve pas: ':/resources/variables2.txt'
2) Erreur lors de l'ouverture du fichier 2
Puis que le fichier ':/resources/variables2.txt' ne peut exister, il est normal qu'il ne puisse l'ouvrir.
3) Erreur lors de l'ouverture du fichier!
S'il dit 'erreur' c'est qu'il y a une raison; voir si le fichier existe déjà, si on a le droit sur ce fichier; il y a une raison, les bugs sont rares; il faut chercher.
1) Erreur dans le chemin de fichier
normal qu'iol ne trouve pas: ':/resources/variables2.txt'
2) Erreur lors de l'ouverture du fichier 2
Puis que le fichier ':/resources/variables2.txt' ne peut exister, il est normal qu'il ne puisse l'ouvrir.
3) Erreur lors de l'ouverture du fichier!
S'il dit 'erreur' c'est qu'il y a une raison; voir si le fichier existe déjà, si on a le droit sur ce fichier; il y a une raison, les bugs sont rares; il faut chercher.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bon, beh apparement il fallait bien mettre le chemin complet avec les "\\". L'ouverture et l'écriture marchent bien, mais je reste quand même très curieux de savoir ce qui peut faire marcher une ouverture sans chemin complet, et pas une autre...
Dans tous les cas merci pour vos conseils judicieux, et désolé de ne vous avoir pas facilité la tâche!
Dans tous les cas merci pour vos conseils judicieux, et désolé de ne vous avoir pas facilité la tâche!
Char Snipeur
Messages postés
9813
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
3 octobre 2023
1 298
24 mars 2009 à 12:01
24 mars 2009 à 12:01
l'ouverture par un chemin non complet dépendra du répertoire courant et des droits associées.