Fichier impossible à lire - C++ builder 6 [Résolu]

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

Votre réponse

2 réponses

Meilleure réponse
cs_jopop 1540 Messages postés lundi 26 mai 2003Date d'inscription 1 août 2013 Dernière intervention - 28 avril 2011 à 15:29
3
Merci
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

Merci cs_jopop 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 93 internautes ce mois-ci

Commenter la réponse de cs_jopop
Rionirind 26 Messages postés mercredi 5 décembre 2007Date d'inscription 8 juillet 2011 Dernière intervention - 28 avril 2011 à 17:30
0
Merci
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!
Commenter la réponse de Rionirind

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.