ca a deja ete aborde mais... (fichier.ini) - C++ - Programmation
Marsh Posté le 31-03-2003 à 14:34:54
hum, va voir du cote de www.flipcode.com rayon code of the day (fouille les archives de cette section). Me semble qu'il y a ce que tu cherches
Marsh Posté le 31-03-2003 à 14:43:33
ReplyMarsh Posté le 31-03-2003 à 14:46:50
C koi comme appli (t es sous VC mais tu fais koi comme appli) ?
Si tu as une WinApp et donc un projet MFC, tu as CWinAPP::GetProfile.. dispo
Edit : en fait c defini ds Winbase.h
Marsh Posté le 31-03-2003 à 15:27:01
char tempi[1000];
tempi = CWinApp::GetProfileString(LPCTSTR("SECTION" ),LPCTSTR("KEY" ),LPCTSTR("none" ));
mais...heu... comment est ce qu'on specifie le fichier dans lequel il doit chercher??
Et puis j'ai droit a :
error C2352: 'CWinApp::GetProfileString' : illegal call of non-static member function
EDIT :
Code :
|
Comme ca, ca passe mais pour le nom de fichier?
Marsh Posté le 31-03-2003 à 15:37:26
GetProfileString est une fonction de l'API Win32, en VC++ on y accède donc via le namespace global :
::GetProfileString
Pour info :
Citation : |
Marsh Posté le 31-03-2003 à 15:39:22
Euh c une methode de ta CWinApp si tu en a une
Code :
|
Et comment on specifie le .ini comme ca
Code :
|
Tu as pas besoin d appeler free() le destructeur de CWinApp le fait, et c est a placer ds le InitInstance de la WinApp
Marsh Posté le 31-03-2003 à 16:09:17
merci, ca fonctionne a moitie. Mais quand je dis a moitie, c'est vraiment a moite.
Code :
|
for (int i=0;i<12;i++)
AfxMessageBox((CString)(char)tempi.GetAt(i));
m'affiche ... coercuh
Marsh Posté le 31-03-2003 à 16:21:44
hehe, parfois je pense.
Est ce que ca se pourrait que la taille de mes caracteres soit 2 fois plus grande que la taille d'un caractere normal? Sachant que mon programme tourne sur un pocket pc! Y aurait pas une histoire d'unicode la dedans? Vous en pensez quoi?
Marsh Posté le 31-03-2003 à 16:29:47
pitetre jsais pas jamais fait sur ce
mais bon pour ton test le for je vois pas l interet
Code :
|
Marsh Posté le 31-03-2003 à 16:42:31
ouais ca fonctionne.
Par contre pour specifier le fichier c'est pas gagne parce que pas de c: sur pocket PC je pense donc :
Code :
|
mais ca ne fonctionne pas, si je n'ecris pas la valeur "chosetrucmuch" avant, il ne trouve rien.
Donc je suppose que j'allais ecrire quelque part et que je lisais cette valeur sans aucun rapport avec le fichier.
Je vais essayer de trouver un truc pour resoudre ca.
Merci
Marsh Posté le 31-03-2003 à 16:53:58
Ben tu peut faire ca si ton fichier ini a le mm nom que ton exe
Code :
|
Edit : avec le free bien sur
Marsh Posté le 31-03-2003 à 17:17:30
ha ben non c'est ratai. pourtant meme nom (meme casse aussi) mais ca fonctionne pas.
Alors maintenant je sais meme plus si c'est le fichier ou la lecture qui va pas
Marsh Posté le 31-03-2003 à 17:20:09
Bah ce que je peut t affirmer c que ca marche sous Win normal (98 2K NT et XP) j ai teste et la sous 2K j ai tester au cas ou car de memeoire.
Marsh Posté le 31-03-2003 à 17:26:19
ouais ben merci quand meme. Je vais essayer d'eclaircir ca.
Marsh Posté le 31-03-2003 à 14:33:33
En faisant un peu de recherche sur comment lire un fichier .ini je me suis rendu compte qu'il etait conseille de n'utiliser la fonction GetPrivateProfileString(...); que dans un environnement 16 bits. Bien bien mais n'ayant rien trouve d'autre, j'ai teste cela quand meme. Le probleme c'est que mon compilateur (Visual c) ne reconnait pas cette fonction. Des lors, n'y aurait il pas un include a ajouter ou alors cette fonction a elle ete abandonnee ou quoi?
Sinon y a pas autre chose que GetPrivateProfileString pour lire dans un fichier .ini a l'heure actuelle?
Merci bieng