Ouverture des fichiers [SDL]

Fermé
doumbia.danse Messages postés 46 Date d'inscription jeudi 3 juillet 2014 Statut Membre Dernière intervention 16 mars 2015 - 24 janv. 2015 à 21:09
Au fait , j'ai fais un petit programme en c avec la SDL qui est une sorte de petit paint, c'est-à-dire, on peut faire des petits dessin avec des couleurs , bref! Et il est possible que l'utilisateur enregistre le dessin s'il en a envie(pas comme une image avec SDL_saveBMP() , mais autrement ) et le réouvrir après pour le modifier, mais cela n'est possible que s'il ouvre le programme puis maintient Ctrl+o , cependant moi je souhaite qu'il ne soit pas ainsi, j'aimerai que l'utilisateur puisse cliquer sur le fichier .mb qui est créé lors du stockage du dessin et que le programme ouvre le dessin directement.

voici le code d'enregistrement au cas ou l'on maintien Ctr+s:
//enregistrement des coordonnées x de chaque point
registrex=fopen("molox.mb","w");
for(j=0;j<GRT;j++)
{
    Initialisecar(c,100);
    if(valeursx[j]==(-1)) break;
    sprintf(c,"%d\n",valeursx[j]);
    fputs(c,registrex);
 
}
fclose(registrex);
 //enregistrement des coordonnées y de chaque point
registrey=fopen("moloy.mb","w");
for(j=0;j<GRT;j++)
{
    Initialisecar(c,100);
    if(valeursy[j]==(-1)) break;
    sprintf(c,"%d\n",valeursy[j]);
    fputs(c,registrey);
 
                                    }
fclose(registrey);
 //enregistrement des numeros de couleur pour chaque point
registre_couleur=fopen("moloc.mb","w");
for(j=0;j<GRT;j++)
{
    Initialisecar(c,100);
    if(valeurs_couleur[j]==(-1)) break;
    sprintf(c,"%d\n",valeurs_couleur[j]);
    fputs(c,registre_couleur);
}
fclose(registre_couleur);

voici celui de lecture au cas ou l'on maintien Ctrl+o
InitialiseInt(valeursx,GRT);
InitialiseInt(valeursy,GRT);
InitialiseInt(valeurs_couleur,GRT);
SDL_FillRect(ecran,NULL,blanc);
i=0;
char l[10];
j=0;
//lecture des coordonnées x
lecturex=fopen("molox.mb","r");
while(fgets(l,10,lecturex)!=NULL)
{
    valeursx[j]=atoi(l);
    //Initialisecar(l,100);
    j=j+1;
}
fclose(lecturex);
//lecture des coodonnées y
j=0;
lecturey=fopen("moloy.mb","r");
while(fgets(l,10,lecturey)!=NULL)
{
    valeursy[j]=atoi(l);
    j=j+1;
}
fclose(lecturey);
j=0;
//lecture du fichier couleur
lecture_couleur=fopen("moloc.mb","r");
while(fgets(l,10,lecture_couleur)!=NULL)
{
    valeurs_couleur[j]=atoi(l);
    j=j+1;
}
fclose(lecture_couleur);
j=0;
//l'execution des données collectées          
for(i=0;i<GRT;i++)
{
    if(valeursx[i]==-1 && valeursy[i]==-1) break;
    if(valeurs_couleur[i]==1) SDL_FillRect(point,NULL,noir);
    else if(valeurs_couleur[i]==2) SDL_FillRect(point,NULL,rouge);
    else if(valeurs_couleur[i]==3) SDL_FillRect(point,NULL,bleu);
    else if(valeurs_couleur[i]==4) SDL_FillRect(point,NULL,vert);
    else if(valeurs_couleur[i]==0) SDL_FillRect(point,NULL,blanc);
    position.x=valeursx[i];
    position.y=valeursy[i];
    SDL_BlitSurface(point,NULL,ecran,&position);
}
SDL_Flip(ecran);


En un mots le but pricipale est d'ouvrir ces fichiers .mb depuis l'explorateur de fichiers par mon programme au lieu toujours lancer mon appli et maintenir Ctrl+o pour l'ouvrir.
En avez vous une idée?

Merci d'avance!