Fichier impossible à lire - C++ builder 6

Résolu
Rionirind Messages postés 26 Date d'inscription mercredi 5 décembre 2007 Statut Membre Dernière intervention 8 juillet 2011 - 28 avril 2011 à 10:00
Rionirind Messages postés 26 Date d'inscription mercredi 5 décembre 2007 Statut Membre Derniè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.

2 réponses

cs_jopop Messages postés 1540 Date d'inscription lundi 26 mai 2003 Statut Membre Dernière intervention 1 août 2013 12
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 ><

bon courrage
3
Rionirind Messages postés 26 Date d'inscription mercredi 5 décembre 2007 Statut Membre Derniè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é.

Merci encore et bonne prog!
0