Se connecter / S'enregistrer
Votre question

[MFC] Ouverture fichier

Tags :
  • Creation
  • Programmation
Dernière réponse : dans Programmation
1 Septembre 2007 16:40:51

Bonjour,

J'aurais aimé savoir si qq1 savais comment forcer la reouverture d'un fichier je m'explique: j'ouvre un fichier je fais une modification dessus et quand je le reouvre ben ca m'affiche n'importe quoi (alors que quand je ferme l'appli et que je l'ouvre tout est ok). Apparemment y a un probleme avec la reactualisation de l'ouverture quand c'est le meme fichier :D  . Je fais une appli SDI de type cformview et j'utilise les fonctions ouvrir et enregistrer deja fourni de base. Merci de vos reponses ;) 

Autres pages sur : mfc ouverture fichier

a b L Programmation
2 Septembre 2007 09:49:17

Après avoir lu ou écrit dans un fichier, il faut le fermer pour être sûr que les données soient écrites et que le fichier ne soit pas corrompu.
Une fois ton fichier fermé, tu peux l'ouvrir à nouveau.
2 Septembre 2007 09:53:34

Salut, merci de la reponse :)  mais en fait j'utilise la fonction ouvrir deja implementé dans le projet (celle de windows par defaut lors de la creation d'un projet) . Ou devrais je faire les modifications au niveau de l'ouverture et fermeture alors ?
Contenus similaires
2 Septembre 2007 10:37:54

slt,
et si tu montrais ton source plutot ? (ouverture/ecriture)
2 Septembre 2007 10:54:56

Salut :)  , le probleme c'est que c'est pas moi qui le gere c'est windows :D  donc c'est un *.cpp deja codé .... (j'utilise la fonction ouvrir qui est deja implemnté lors de la creation d'un nouveau projet, mes donnéees sont simplement serialisées grace a ca vers un fichier). De mon coté je ne m'occupe que de la serialisation.
a b L Programmation
2 Septembre 2007 11:36:40

ça change pas le problème. Il doit y avoir une fonction qui ferme le fichier. Sinon, c'est codé avec les pieds :) 
2 Septembre 2007 12:31:41

C'est en effet codé avec les pieds :whistle:  (j'avais pas trop de temps a passer dessus ). Bah c'est pas bien grave ca survient juste quand on ouvre deux fois de suite le meme fichier me debrouillerais autrement.Apparemment je crois que c'est pas possible a resoudre si je comprends bien le franglais :lol:  http://support.microsoft.com/kb/139828/fr. Or c'est exactement ce probleme que j'ai :jap:  . Merci ;) 
2 Septembre 2007 13:19:31

kestu veux qu'on te dise.

Si tu vas pas montrer ton morceaux de code, on peut pas faire grand chose pour toi ....
Comme déjà dis ici: J'ai oublié ma boule de cristal!!

Par expérience, après avoir écrit des 100aines de milliers de lignes de code: En programmation, il n'y a pas vraiment d'impossibilité (à ce niveau là bien sur), on peut toujours contourner le problème, changer de méthode... en réutilisant l'existant, ou en inventant sa propre méthode.
2 Septembre 2007 13:28:32

Ce n'est pas que je veux pas montrer mon code :D  c'est que je n'ai que cette ligne tout simplement :
  1. ON_COMMAND(ID_FILE_OPEN, CWinApp::OnFileOpen)

Donc je vois pas a quoi ca avancerait ...(la fonction utiliser doit etre dans un fichiers generique de visual 6 ;)  )

De plus j'ai essayé comme dans l'exemple de code du lien au dessus de recreer une fonction c'est pas mieux ....alors je vois pas du tout :pt1cable: 

PS: je pecise bien une appli mfc que je fais .... :)  donc si il y a des fonctions d'origine deja dispo c'est bien pour s'en servir :(  apres si elles marchent a moitié :whistle: 
a b L Programmation
2 Septembre 2007 14:13:12

http://msdn2.microsoft.com/en-us/library/11861byt(VS.80).aspx
ça appelle le OpenDocument() de ton CDocument. J'imagine que tu as implémenté cette méthode ?

Ce qu'on veut savoir, c'est comment tu serialises tes données pour la lecture, et surtout comment tu récupères les données à partir d'un fichier !
2 Septembre 2007 16:29:51

Non en fait je crois que ca vient de la le probleme j'ai regardé j'ai ps de OpenDocument() juste un NewDocument(). Pour la serialisation :
  1. ar >> Objet.NbEleve;
  2. for(int i=0;i<Objet.NbEleve;i++)
  3. {
  4. Objet.TEleve[i].Serialize(ar);
  5. ar>>Objet.TEleve[i].Nom>>Objet.TEleve[i].Classe ...
  6. ...>>Objet.TEleve[i].moyenne>>Objet.TEleve[i].com;
  7. // Chargement des informations }


En fait quand j'ouvre le meme document il laisse la meme chose (donc laisse les modifications apportés). Or j'aimerais que ca revienent au doc initial.
Merci (je suis vraiment ps doué en mfc et c++ :pt1cable:  )

EDIT : apparamment on m'a confirmer que c'etait bien a cause de la fonction d'ouverture qui ne pointe pas sur un fichier deja ouvert ... c'est donc la fonction ouvrir faite de base qui plante .. :) 
a b L Programmation
2 Septembre 2007 18:44:41

ça m'étonne un peu. En même temps, c'est microsoft qui a fait la MFC... :) 
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS