begin process at 2012 02 10 12:59:57
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Windows

 > 

GUI

 > 

OPENFILENAME et fichier ini


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

OPENFILENAME et fichier ini

dimanche 17 décembre 2006 à 12:37:59 | OPENFILENAME et fichier ini

raoulman

Bonjour, Voilà le problème. J'ai une boîte de dialogue avec plusieurs EditBox et un bouton qui m'ouvre la boîte de dialogue "ouvrir" de Windows en utilisant la structure OPENFILENAME. Si je remplis des EditBox et que je valide sans appeler la structure OPENFILENAME, je crée un fichier ini qui contient les données de mes EditBox. Par contre, si j'appelle la structure, mon fichier ini ne se crée pas. Voilà le bout de code concerné char filtre[] = "Fichiers texte (*.txt)\0*.txt\0", chemin_choisi[MAX_PATH] = {0}; case WM_COMMAND: switch (LOWORD(wParam)) { case changer_rep_signature: OPENFILENAME ofn; ofn.lStructSize = sizeof(OPENFILENAME); ofn.hwndOwner = handle_enfant1; ofn.hInstance = NULL; ofn.lpstrFilter = filtre; ofn.lpstrCustomFilter = NULL; ofn.nMaxCustFilter = NULL; ofn.nFilterIndex = 1; ofn.lpstrFile = chemin_choisi; ofn.nMaxFile = MAX_PATH; ofn.lpstrTitle = "Ouvrir"; ofn.nMaxFileTitle = NULL; ofn.lpstrInitialDir = NULL; ofn.lpstrTitle = NULL; ofn.Flags = OFN_FILEMUSTEXIST | OFN_LONGNAMES | OFN_PATHMUSTEXIST; ofn.nFileOffset = NULL; ofn.nFileExtension = NULL; ofn.lpstrDefExt = NULL; ofn.lCustData = NULL; ofn.lpfnHook = NULL; ofn.lpTemplateName = NULL; if (GetOpenFileName (&ofn) != 0) { SetDlgItemText (handle_enfant1, valeur_signature, chemin_choisi); } break;
dimanche 17 décembre 2006 à 16:25:17 | Re : OPENFILENAME et fichier ini

yann_lo_san

The last string in the buffer must be terminated by 2 NULL characters :

char filtreTexte[] = "Fichiers texte (*.txt)\0*.txt\0\0";

// OU plusieurs filtres

char filtreTexteEtIni[] = "Fichiers txt + ini (*.txt;*.ini)\0*.txt;*.ini\0\0";
dimanche 17 décembre 2006 à 16:56:39 | Re : OPENFILENAME et fichier ini

raoulman

Merci pour la correction. J'apporte quelques détails supplémentaires à mon problème. Une fois le chemin récupéré par ofn.lpstrFilter je l'affiche dans un editbox et ensuite je récupère son contenu pour l'écrire dans un fichier ini. WritePrivateProfileString ne me renvoie pas d'erreurs mais il ne me crée pas pour autant mon fichier ini. J'ai essayé avec une structure Browseinfo et j'ai pas de problèmes. Je ne comprends pas du tout d'où le problème peut venir.
dimanche 17 décembre 2006 à 17:08:58 | Re : OPENFILENAME et fichier ini

yann_lo_san

Si le fichier ini n'existe pas au départ, WritePrivateProfileString() le crée dans le repertoire Windows.

dimanche 17 décembre 2006 à 17:17:58 | Re : OPENFILENAME et fichier ini

raoulman

Exact mais je lui donne un chemin et je sais que mon fichier ini se crée dans le même répertoire que mon programme. Si je n'appelle pas ma structure Openfilename et que je renseigne d'autres editbox j'ai bien mon fichier ini crée avec les données dedans. C'est uniquement quand j'appelle la structure openfilename que mon fichier ini n'est pas crée. Si tu as une idée
dimanche 17 décembre 2006 à 17:33:35 | Re : OPENFILENAME et fichier ini

yann_lo_san

Attention, l'openFileName change le rep courant. Alors peut etre ton fichier se crée ailleurs.

dimanche 17 décembre 2006 à 17:40:40 | Re : OPENFILENAME et fichier ini

raoulman

Alors là j'suis sur le c..! En effet je l'ai trouvé à la racine de mon lecteur où se trouve mon programme. Y'a un moyen d'empêcher Openfilename de changer le répertoire courant ?
dimanche 17 décembre 2006 à 17:43:32 | Re : OPENFILENAME et fichier ini

yann_lo_san

Réponse acceptée !

Oui, apres avoir appelée openFileName fais
SetCurrentDirectory()

dimanche 17 décembre 2006 à 17:48:03 | Re : OPENFILENAME et fichier ini

raoulman

Eh bien j'ai pas perdu ma journée et je me coucherai moins bête ce soir. Un grand merci à toi yann_lo_san
dimanche 17 décembre 2006 à 20:47:44 | Re : OPENFILENAME et fichier ini

BruNews

Administrateur CodeS-SourceS
OFN_NOCHANGEDIR

ciao...
BruNews, MVP VC++


Cette discussion est classée dans : fichier, ini, editbox, ofn, openfilename


Répondre à ce message

Sujets en rapport avec ce message

Ouvrir un fichier : problème de LPWSTR ne VC++ [ par marco123456789 ] Je souhaterais obtenir l'adresse d'un fichier en utilisant une fenetre OUVRIR de WINDOWS (un OPENFILENAME).Or le code ne compile pas car il semble imp Récupérer séparément Nom et Chemin d'un fichier [ par cartes1 ] BonjourAvec Visual studio C++ 6 en Api pur, je n'arrive pas à récupérer séparément le nom d'un fichier d'un côté et le chemin de l'autre ( sans le nom Nombre de clé dans une section - fichier ini [ par romauto750 ] Bonjour,j'aurai aimé savoir s'il était possible de savoir le nombre de clés dans une section dans un fichier .ini.Exemple, pour ce fichier .ini[Test]c Ecrire contenu d'un fichier dans un Edibox en VC++ [ par develdelphi ] bonjour, Je voudrais ecrire le contenu d'un fichier dans un control EditBox. Il me faudra connaitre sans doute la taille et le nombre de lignes afin d gestion de fichier ini sur dk40, développé sous borland 5.02 [ par projetdk40 ] Bonjour, je doit gérer un fichier ini, au travers d'un script cgi, et ainsi, ajouter ou supprimer des infos dans ce fichier ini, qui se trouve sur un COPIE DE FICHIER SANS INDIQUER LE CHEMIN COMPLET [ par Batman60 ] Bonjourje voudrais copier et renommer un fichier vers un dossier sans indiquer le chemin complet pour pouvoir placer le dit dossier n'importe où sur l lecture d'un fichier.INI de N trames en C++ [ par odin13013 ] lecture d'un fichier.INI de N trames   en C++ Bonjour, en bref je fais un programme d'analyse de trame. Dans un fichier.INI je paramétre de la facon s récuperer un paramétre dans un fichier.ini [ par odin13013 ] Bonjour,juste une petite question....Lorsque je lis dans le fichier.ini :   [TRAME1]APPLICATION=CFONCTION=JPRIORITE=1AGE_MAX=SsEchantillonnage=1par ex envoyer les paramétre d'un fichier.ini dans un autre fichier [ par odin13013 ] Bonjour à tous En fait je lis des valeurs dans un fichierInI que j'ai nommé:lectureparamétre.INI Maintenant je souhaiterai insérer ces valeurs dan Ouvrir un fichier [ par ndubien ] Bonjour,Comment récupérer le nom des fichiers ouverts avec :ZeroMemory(&ofn, sizeof(OPENFILENAME));ofn.lStructSize = sizeof(OPENFILENAME);ofn.hwndOwne


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 2,824 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales