[C++ Builder] Problème étrange entre OpenDialog & écriture de fichier

Problème étrange entre OpenDialog & écriture de fichier [C++ Builder] - C++ - Programmation

Marsh Posté le 12-11-2003 à 14:54:10    

J'ai l'impression que c'est un bug de borland,
 
j'ai fait un programme qui isole le probleme
 
le fait de faire appel à un "OpenDialog", ça empeche de faire un "fprintf"
 
Et ce même si les 2 actions n'ont aucun lien!!!!
 
Avez vous eu ce pb?
 
Voilà mon programme

Code :
  1. //---------------------------------------------------------------
  2. void __fastcall TForm1::SpdBtnLancerClick(TObject *Sender)
  3. {
  4. FILE *script ;
  5. script=fopen("script.txt","w+" ) ;
  6. fprintf(script,"test" ) ;
  7. fclose(script) ;
  8. }
  9. //---------------------------------------------------------------
  10. void __fastcall TForm1::SpdBtnExplorerClick(TObject *Sender)
  11. {
  12. if (OpenDialog1->Execute())
  13.     Edit->Text=OpenDialog1->FileName ;
  14. }
  15. //---------------------------------------------------------------


Message édité par petit prince le 12-11-2003 à 15:08:07

---------------
Black List : FABD!!! <-ne pas lui faire confiance!
Reply

Marsh Posté le 12-11-2003 à 14:54:10   

Reply

Marsh Posté le 12-11-2003 à 15:35:43    

- T'as testé la valeur de retour de fopen ?
- Tu as songé au fait que si tu sélectionnes un fichier dans un dossier différent via ton OpenDialog, le dossier en cours est celui du fichier sélectionné et non celui d'avant la sélection ? (vu que tu as navigué vers un autre dossier avec l'OpenDialog). Vu que tu ne spécifie pas de chemin dans ton fopen, je suppose que la réponse est non :D


Message édité par antp le 12-11-2003 à 15:36:10

---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 12-11-2003 à 15:50:07    

rho je suis trop une cruche
Pour le 1/, j'ai corrigé
Et mon pb était dans le 2/, mon fichier était en fait créé dans le fichier sélectionné par l'OpenDialog
 
Merchi antp (je remarque que t'es tjs celui qui me sauve :) )


---------------
Black List : FABD!!! <-ne pas lui faire confiance!
Reply

Marsh Posté le 12-11-2003 à 15:53:05    

Au cas où ça serait l'objet d'une future question : pour récupérer le chemin du programme (où est l'exe) tu peux utiliser ExtractFilePath(Application->ExeName)


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 12-11-2003 à 15:59:48    

celui là je le connaissais (ouf quand meme)


---------------
Black List : FABD!!! <-ne pas lui faire confiance!
Reply

Marsh Posté le 29-07-2008 à 11:51:23    

Bonjour,
 
Effectivement ExtractFilePath(Application->ExeName) permet de retrouver le chemind e l'exécutable, mais cependant, comment changer, après l'appel de OpenDialog1, le répertoire en cours de l'application, pour éviter à chaque fois de retaper ExtractFilePath(Application->ExeName) ?
Merci

Reply

Marsh Posté le 29-07-2008 à 13:02:33    

J'ai trouvé tout seul et sans aide :)
 
 
Il faut mettre dans le code OpenDialog1->Options << ofNoChangeDir; ou bien dans l'éditeur Borland, changer la propriété Options de OpenDialog1, et mettre ofNoChangeDir à true.
 
Cette option permet de ne pas changer le répertoire courant de l'application à chaque appel à OpenDialog1->Execute();
 
Voilà, si ça peut aider !

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed