unsigned char *get_gpg(char *filename) // marche pour les sef et gpg
{
unsigned char *data;
F_HANDLE hfile;
unsigned long p_read_count;
unsigned long fsize;
hfile = NULL;
if (SM_OK != GpFileOpen(filename, OPEN_R, &hfile)) { }
GpFileGetSize(filename, &fsize);
GpFileSeek(hfile, FROM_BEGIN, 8, 0);
data = gm_zi_malloc(fsize); // * sizeof(unsigned short)
GpFileRead(hfile, data, fsize, &p_read_count);
GpFileClose(hfile);
return (data);
}
unsigned char * title ;
title = get_gpg("gp:\gpmm\title.gpg") ;
et la le mec il le pécho par le bras et il lui dit '
et noferov un grand mrc a yenache d ailleurs
LE DIRE CELA EST BIEN LE FAIRE S EST ENCORE MIEUX :)
merci pour vos reponse #contentcontent#
voila:
void GpMain(void *arg)
{
GpFatInit(); //donc pour lire ds la SMC
GpRelativePathSet(image_path);
unsigned char *titre=NULL;
GpLcdSurfaceGet(&gpDraw, 0);
GpRectFill(NULL, &gpDraw, 0, 0, gpDraw.buf_w, gpDraw.buf_h, 0xff);
GpSurfaceSet(&gpDraw);
GpFileOpen("titre.bin");//on ouvre titre
GpFileRead("titre.bin");//la on le lit,
do
{
GpBitBlt(NULL,&gpDraw,0,0,320,240,(unsigned char*)titre,0,0,320,240);
}
while(1);
}
il faut sans doute envoyer ce qui est "GpFileReadé" vers titre,non???
ATTENTION prenez po compte de ce post, noferov a ecrit en meme temp que moi ^^
voila
unsigned char *get_gpg(char *filename) // marche pour les sef et gpg
{
unsigned char *data; // declaration du pointeur qui pointera sur les données chargées
F_HANDLE hfile; // 'pointeur' sur fichier
unsigned long p_read_count;
unsigned long fsize; // variable qui contiendra la taille du fichier
hfile = NULL;
if (SM_OK != GpFileOpen(filename, OPEN_R, &hfile)) { /* ici code si fichier inexistant */ } // essai d'ouvrir le fichier
else
{
GpFileGetSize(filename, &fsize); // met la taille ds fsize
GpFileSeek(hfile, FROM_BEGIN, 8, 0); // saute l'header du fichier
data = gm_zi_malloc(fsize); // declare dinamiquement la ram pour l'image a charger
GpFileRead(hfile, data, fsize, &p_read_count); // charge l'image vers 'data'
GpFileClose(hfile); // ferme le fichier
}
return (data); // retourne le pointeur vers les data chargées
}
et la le mec il le pécho par le bras et il lui dit '
le *.h est le plus gros le gpg reste de la meme taille que ton bmp org
unsigned char * mon_image ;
mon_image = get_gpg("gp:\gpmm\mon_image.gpg") ;
et ta syntaxe est correcte
LE DIRE CELA EST BIEN LE FAIRE S EST ENCORE MIEUX :)
le .gpg est bc plus petit qu'un .h : 75ko pour une image de 320*240*8 et 150 ko pour du 320*240*16
la g fait un test, pour du 320*240*8 un .h fait 485ko
mais ca c en .h, si c inclu ds le fxe, ton bg fera aussi 75ko sauf qu'il sera en plus compressé
faudrais demander a spiv les fct pour decompresser des data compressé par b2fxec, pour l'utiliser avec les gpg ...
ou utiliser un autre format graphique, c le mieux mais le plus compliqué a faire
et la le mec il le pécho par le bras et il lui dit '
ouais, parce que c'est encore très lourd je trouve tout ca.
TI-NSpire Pwned !
Thx ya all...thx ExtendeD.
...The rebirth of the community...
Lama Le 15/07/2003 à 16:27 Ce sont les base des fonctions de lecture/ecriture de fichier.
Je te conseil vraiment d ebien faire attention car c'est quelques chose qui est tres utile. Au cas ou tu veux en savoir plus, achete un petit bouquin de poche sur la C, c'est tres bien expliqué generalement.
le F_HANDLE c'est une variable qui va stocké les informations sur le fichier que tu viens d'ouvrir. Tu peux ouvrir plusiers fichier en meme temps alors chaque fonction a besoin de savoir de quel fivhier on parle sans avoir besoin de redonner une chaine de caractere.
OPEN_R c'est le mode d'ouverture du fichier, donc ici il est en lecture (R pour Read), si tu veux ecrire, il faut l'utiliser en OPEN_W (je pense que ca doit etre ca, j'ai pas les docs sous les yeux).
FROM_BEGIN en effet c'est pour dire depuis le debut. Le programme sais a chaque fois ou tu en ai dans ton fichier. Quand tu l'ouvres la position est 0 (generalement, mais bon je vais pas tout expliquer ici) si tu lis 2 octet, il sera a 2. si tu relis 4 octets il sera 6.
Si tu veux lire quelques chose a une position donné dans le fichier, tu utilises la fonction Seek qui va changer la position actuelle. Grace a FROM_BEGIN, tu dis a la fonction de compter depuis le debut, mais tu peux aussi lui dire d'avancer depuis la position actuelle ou depuis la fin du fichier.
Bon courage ^^
Arretez de m'appeler serge !