[C] En ce qui concerne un .ini ....

En ce qui concerne un .ini .... [C] - C++ - Programmation

Marsh Posté le 08-05-2002 à 18:53:08    

Voial, je voudrais sauvegarder dans un .ini certaines configuration de mon programme, mise en systray, couleur ....
Mais certaines de ces options n'ont que deux etats via une check box (1 ou 0)...
 
Comment faire" pour alleger mon code ???
 
 
// Appel de mon option dans le .ini
GetPrivateProfileString("Systray", "Systray", buff_systray, buff_receive, sizeof(buff_receive), "esclave.ini" );
 
if(strcmp(buff_receive,"1" )==0) SendMessage(GetDlgItem(hDlgOptionsProc, IDC_CHECK_SYSTRAY),BM_SETCHECK,BST_CHECKED,0);
  else SendMessage(GetDlgItem(hDlgOptionsProc, IDC_CHECK_SYSTRAY),BM_SETCHECK,BST_UNCHECKED,0);
 
case WM_COMMAND:
  switch(LOWORD(wParam))
  {
   
  case IDOK :
   
   //SendDlgItemMessage(hDlgOptionsProc, IDC_CHECK_SYSTRAY, BM_GETCHECK, 0, 0);
   //if(check==1) WritePrivateProfileString("Systray", "Systray", "1", "esclave.ini" );
   //else WritePrivateProfileString("Systray", "Systray", "0", "esclave.ini" );
   WritePrivateProfileString("Systray", "Systray", buff_systray, "esclave.ini" );
   
   EndDialog(hDlgOptionsProc,1);
   break;
 
case IDC_CHECK_SYSTRAY:
   switch(SendMessage(GetDlgItem(hDlgOptionsProc, IDC_CHECK_SYSTRAY),BM_GETCHECK,0,0))
   {
   case BST_CHECKED:
    strcpy(buff_systray,"1" );
    break;
 
   case BST_UNCHECKED:
    strcpy(buff_systray,"0" );
    break;
   }
   
  break;
  }
  break;
 
Voila, les parametres s'enregistre dans le fichier escalve.ini, lorsque l'on clique sur le bouton OK !
 
Mais j'ai mis e,n place un buffer de 100 (je sais, c'est énorme pour du booléen, sachant qu'il n'a que 2 etats (1 ou 0)), mais l'importance n'est pas la, l'importance et que j'aimerais savoir comment faire sans utiliser un buffer, il doit bien y avoir un moyen ....
 
Merci
Albi

Reply

Marsh Posté le 08-05-2002 à 18:53:08   

Reply

Marsh Posté le 08-05-2002 à 18:59:33    

Si tu as beaucoup d'options booléennes, essaie de les regrouper toutes dans une seule string...
Sinon je pense pas que tu puisses faire tellement plus simple :(
 
(merci Borland pour le TIniFile, et surtout le TMemIniFile :love:)

 

[jfdsdjhfuetppo]--Message édité par antp le 08-05-2002 à 19:00:24--[/jfdsdjhfuetppo]


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 08-05-2002 à 19:00:18    

???

Reply

Marsh Posté le 08-05-2002 à 19:01:36    

Tu mets des caractères à 0 ou 1 dans une chaîne, chaque octet ayant une position dans la chaine "options booleennes", puis tu écris cette chaîne telle quelle.
C'est pas terrible pour la lisibilité du ini :(


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 08-05-2002 à 19:02:39    

C'est bien la le prob ....

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed