Rionirind
Messages postés26Date d'inscriptionmercredi 5 décembre 2007StatutMembreDernière intervention 8 juillet 2011
-
28 avril 2011 à 10:00
Rionirind
Messages postés26Date d'inscriptionmercredi 5 décembre 2007StatutMembreDernière intervention 8 juillet 2011
-
28 avril 2011 à 17:30
Bonjour à tous.
Je me trouve à cours d'idées dans la résolution de ce problème...
J'ai un bouton qui me permets d'afficher le contenu d'un fichier INI sur un écran différent :
std::ifstram fichier("..\\fiche.ini");
if(fichier.fail())
{ShowMessage("Pas de lecture de fiche ini possible");}
else
{
fichier.clear();
form2->Show();
fichier.close;
}
et un bouton qui me charge l'adresse d'un fichier dans les registres via une OpenDialog (et qui n'a rien à voir avec le fichier INI):
if(OpenDialog1->Execute())
{
TRegistry *reg = new TRegistry();
reg->RootKey = HKEY_CURRENT_USER;
/*
Tout un tas de reg->WriteString
*/
delete reg;
}
Les deux boutons fonctionnent correctement quand je les lance séparément. Le souci se pose lorsque je clique sur le bouton de lecture du fichier après un chargement d'adresse dans les registres. Je reçois le message d'erreur de fichier.fail() alors que le fichier INI est disponible.
Comment faire pour ouvrir mon fichier après être passé dans les registres?
Merci par avance pour vos réponses.
cs_jopop
Messages postés1540Date d'inscriptionlundi 26 mai 2003StatutMembreDernière intervention 1 août 201312 28 avril 2011 à 15:29
Salut,
ça fait très longtemps que j'ai pas fait de C++, mais je vais me tenter. Je vois que ton filename est relatif. Il est donc possible que le répertoire courant change dans ton autre event. Pour voir si ça vient de ça tu peux :
- regarder quel est le répertoire courant à la fin de chacun de tes event (fonction getcwd ?),
- mettre le chemin vers ton fichier en absolu et tester si y'a du mieux avec la manip qui déconnait.
Si ça vient bien de là, c'est cool, on connait le souci. Par contre aucune idée de comment fixer le bousin ><
Rionirind
Messages postés26Date d'inscriptionmercredi 5 décembre 2007StatutMembreDernière intervention 8 juillet 2011 28 avril 2011 à 17:30
Excellent jopop!
Merci beaucoup!
J'avais déjà testé l'ouverture du fichier par "chemin absolu". Le programme trouvait le fichier mais ne le lisait pas.
Du coup j'ai tester l'adresse de mon répertoire courant avec getcwd(). Le chargement dans les registres ne me renvoyait pas à mon repertoire par défaut malgré mes attributions dans l'OpenDialog.
Du coup un brin de chdir() pour ré-affecter le chemin et tout est (presque) réglé.