90

efface l'historique, ça prend de la place, le "done"
avatar
<<< Kernel Extremis©®™ >>> et Inventeur de la différence administratif/judiciaire ! (©Yoshi Noir)

<Vertyos> un poil plus mais elle suce bien quand même la mienne ^^
<Sabrina`> tinkiete flan c juste qu'ils sont jaloux que je te trouve aussi appétissant

91

lol j'ai dit que c'etait pas l'historique mais c'est bon j'ai trouve c'etait un handle qui etai pas libere

92

short h=CompteDossier(); t'a pas besoin de faire ca : fé plutot h=i;
(et pis tu sé y'a un programme qui s'appelle picwiewer : http://jcpti89.free.fr/prog/Picviewer+1.0.zip qui fé deja tou ca ! )

arf c tou buggé ce que tu a pris de me sources,

bon je suis sympa :voila comment ca marche :
tout il est bien expliké! #include <tigcclib.h> short testtype(char *nom,short type) {   void *plastbyte=HeapDeref(SymFindPtr(SYMSTR (nom),0)->handle)+((MULTI_EXPR*)HeapDeref(SymFindPtr(SYMSTR (nom),0)->handle))->Size+1; //pointeur sur le dernier byte(octet) represantant le type de fichier   if(peek(plastbyte)==type){return 1;}   return 0; } short testtyperep(char *rep,short type,char *retour) {   short i=0,k=0;   char nom[100][20];   short j = 0;   SYM_ENTRY *SymPtr = SymFindFirst (SYMSTR (rep), FO_SINGLE_FOLDER);   while (SymPtr)   {     strcpy(nom[j],rep);  // c ici qu'il fô changer des trucs si tu veux qu'il te renvoi le nom de l'image ss le noim du dossier     strcat(nom[j],"\"); //     strcat (nom[j++], SymPtr->name);     SymPtr = SymFindNext ();   }   for(i=0;i<j;i++)   {     if(testtype(nom[i],type)==1)     strcpy(&retour[20*k++],nom[i]);   } return k; } void getdoss(char *dossier) // renvoie l'ensemble des dossiers  de la calc ici pas d'erreur {   short i=0;     SYM_ENTRY *psym = SymFindFirst(NULL, 4);     while (psym!= NULL && i<20 )     {      strcpy(&dossier[9*i++],psym->name);      psym = SymFindNext();     }      } void showpicture(char *nom,short x,short y) // affiche l'image nom="dossier\var" a la position x,y en partant du hau à gauche {  SCR_RECT screen = {{0, 0, 159, 99}};   short size=((MULTI_EXPR*)HeapDeref(SymFindPtr(SYMSTR (nom),0)->handle))->Size;  void *buffer=malloc(size);  FILE *f=fopen(nom,"rb");   fread(buffer,1,size,f);  fclose(f);  clrscr();  BitmapPut (x,y,buffer, &screen,A_NORMAL );   ngetchx();  free(buffer); /* //et si tu veux la hauteur et la largeur fais comme ca mais JE SUIS PAS SUR!!! , j'ai pas testé //tu ferais mieu d'aller voar ds le topic : "ecran virutel 2 " par matthieu  //kevin explique comment y acceder unsigned short hauteur=(unsigned short)buffer[0]; unsigned short largeur=(unsigned short)buffer[sizeof(unsigned short)]; */ } void _main (void) { short i,j,k,cpteur=0;      char *dossier=calloc(20*9,sizeof(char)); // creation du tableau qui va contenir les dossiers   getdoss(dossier);//y va chercher leur noms et pour y acceder maintenant au lieu de faire dossier[i] fait &dossier[i*9]   char *nom2=calloc(50*20,sizeof(char));//creation du tableau temporaire qui va contenir les noms des pic   char nom[50][20];for(i=0;i<50;i++)strcpy(nom[i],"");//creation du tableau final   i=0;   for(j=0;strcmp(&dossier[j*9],"")!=0;j++) //tant que on arrive pas à la fin du tableau dossier qui est caracterisié par "" donc le dernier element est &dossier[(j-1)*9]   {    k=testtyperep(&dossier[j*9],PIC_TAG,nom2); // on met dans nom2 tous les pic du dossier     for(i=0;i<k;i++)strcpy(nom[cpteur++],&nom2[20*i]); // on met ds nom les pic   }   clrscr();  for(k=0;k<j;k++)  printf("%s\n",&dossier[k*9]);   ngetchx();   clrscr();   for(k=0;k<cpteur;k++) printf("%s\n",nom[k]);   ngetchx();   free(dossier);   free(nom2); // maintenant dans le tableau nom[] se trouve toutes les images de la calc sous la forme dossier\var ok? //t'a plus ka traiter le nom[i] pour obtenir le dossier et le nom de la var_pivc // et sa taille est egale à cpteur }   
et g meme corrigé le truc qui ralentissait tou ! (mais c toujours un peu lent...)
g corrigé le viewer de variable a la page precedente
euh...

93

"return vartyp[i];" --> non, ça ne marche pas parce que vartyp[i] n'est plus censé être valide dès que tu sors de la fonction; il faut créer un buffer dans la fonction appelante et que la fonction appelée le remplisse, ou encore que tu passes par une variable globale.

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

94

un grand merci a Bidoo smilesmilesmilesmilesmilesmile et non je fai pas un prog picviwer je fai un prog pour dessiner des icones en 16*16

95

Euh, c'est ce que j'ai fait en basic ? (cf tigen)
Visitez mon site : http://www.bobti89.fr.st
Testez mon forum ici

96

non c'est ce qu'a fait cptronille

97

tien g reglé tou les problemes que j'ai pu regler
#include <tigcclib.h>
short testtype(char *nom,short type)
{
  void *plastbyte=HeapDeref(SymFindPtr(SYMSTR (nom),0)->handle)+((MULTI_EXPR*)HeapDeref(SymFindPtr(SYMSTR (nom),0)->handle))->Size+1; 
  if(peek(plastbyte)==type){return 1;}
  return 0;
}
short testtyperep(char *rep,short type,char *retour,short t)
{
   short j = 0;
  SYM_ENTRY *SymPtr = SymFindFirst (SYMSTR (rep), FO_SINGLE_FOLDER);
  char buffer[20];
  while (SymPtr)
  { 
    strcpy(buffer,rep);
    strcat(buffer,"\");
    strcat (buffer, SymPtr->name);
    if(testtype(buffer,type)==1)strcpy(&retour[20*(t+j++)],buffer);  
    SymPtr = SymFindNext ();
  }  
  return j+t;
}

void getdoss(char *dossier)
{
  short i=0;  
  SYM_ENTRY *psym = SymFindFirst(NULL, 4); 
   while (psym!= NULL && i<20 ) 
   { 
    strcpy(&dossier[9*i++],psym->name); 
    psym = SymFindNext(); 
   }	
}

void showpicture(char *nom,short x,short y)
{
 SCR_RECT screen = {{0, 0, 159, 99}}; 
 short size=((MULTI_EXPR*)HeapDeref(SymFindPtr(SYMSTR (nom),0)->handle))->Size;
 void *buffer=malloc(size);
 FILE *f=fopen(nom,"rb");
  fread(buffer,1,size,f);
 fclose(f);
 BitmapPut (x,y,buffer, &screen,A_NORMAL ); 
 free(buffer);
}

void _main (void)
{
 short i=0,taille=0;
 char *dossier=calloc(20*9,sizeof(char)); 
 getdoss(dossier); 
 char *nom2=calloc(50*20,sizeof(char));
 while(strcmp(&dossier[9*i],"")!=0)
    taille=testtyperep(&dossier[9*i++],PIC_TAG,nom2,taille); 
//pour acceder aux elements de nom2 tu fait comme cela : &nom2[20*i] (pour acceder à l'élement i )
//et la taille du tableau (qui ne doit JAMAIS depasser 50 sous peine de bug) se trouve dans "taille"
for(i=0;i<taille;i++)
{
clrscr();  
showpicture(&nom2[i*20],5,10);
ngetchx();
} 

  free(dossier);
  free(nom2); 
}
euh...

98

ok merci et sinon comment on peut connaitre la taille d'un pic ca taille X*Y par exemple 16*16? merci
et aussi avec la fonction si il n'y a pas de pic ca plante que faut il mettre pour eviter cela merci encore 1000 fois smilesmilesmilesmilesmile

99

....
je l'ai marqué dans tous mes autres post !!
euh...

100

avec la fonction si il n'y a pas de pic ca plante que faut il mettre pour eviter cela?? merci encore 1000 fois
et pour la taille de l'image en hauteur largeur?? tu la marque ou????

101

cerede2000 :
et aussi avec la fonction si il n'y a pas de pic ca plante que faut il mettre pour eviter cela merci encore 1000 fois smilesmilesmilesmilesmile

qu veut tu dire par là? que si tu ne possede aucune picture sur ta calc sa plante, ca parait evident vu que j'ai forcé l'affichage de picture il suffit de rajouter apres la boucle de while
if(taille)return; ou un truc ds ce genre ..
euh...

102

ok mai sinon pour la taille en largeur hauteur d'un pic on peut faire comment?

103

lis les autres sources !!
euh...

104

ben je l'ai fai!!!! mai ya rien pour cela sadsadsadsadsadsadsad

105


/*
//et si tu veux la hauteur et la largeur fais comme ca mais je suis pas sur
//tu ferais mieu d'aller voar ds le topic : "ecran virutel 2 " par matthieu
//kevin explique comment y acceder
unsigned short hauteur=(unsigned short)buffer[0];
unsigned short largeur=(unsigned short)buffer[sizeof(unsigned short)];
*/


ds le post 91 !!
euh...

106

j'ai etudie comment faisai F.Lieber mai je n'ai compris sadsadsadsad mai il passe pas l'ecran virtuel

107

mai il passe pas l'ecran virtuel

confus confus confus moi non plus .. confus confus
euh...

108

ben deja ca ca marche meme pas a la compilation
unsigned short hauteur=(unsigned short)buffer[0];
unsigned short largeur=(unsigned short)buffer[sizeof(unsigned short)];
et le post de mathieu j'ai pas tou compris!!!!! sadsadsad:sadsad:

109

autant pour moi tongue
1[(short*)buffer];
essaie plutot ca :short hauteur=*(short*)buffer; 
short largeur=
euh...

110

ok la ca marche a la compilation mai j'ai juste un petit prob c ca
void showpicture(char *nom,short x,short y,short attr) 
{ 
SCR_RECT screen = {{0, 0, 160, 100}};  
short size=((MULTI_EXPR*)HeapDeref(SymFindPtr(SYMSTR (nom),0)->handle))->Size; 
void *buffer=malloc(size); 
FILE *f=fopen(nom,"rb"); 
fread(buffer,1,size,f); 
fclose(f); 
BitmapPut (x,y,buffer, &screen,attr);  
short hauteur=*(short*)buffer;  
short largeur=1[(short*)buffer];
free(buffer);
}

il ya deux variable a renvoyer comment on fait pour en renvoyer 2?? merci

111

.... tu le fé expres ou koi ? roll

regarde comment j'ai fait un peu partout ds tout mes post ,
et n'essaie pas de "renvoyer", essaie plutot de modifier de là ou tu est, en envoyant l'adresse d'1 variable à modifer ...

euh...

112

...
regarde l'exemple suivant
#include <tigcclib.h>
void mafunc(short *a,short *b,short *c)
{
	*a=3;
	*b=2;
	*c=1;
}

void _main(void)
{
	short a,b;
	short *pa=&a,*pb=&b,*pc=malloc(sizeof(short));
	mafunc(pa,pb,pc);
  clrscr();
	printf("%d %d %d",a,b,*pc);
	ngetchx();
}
euh...

113

bon en tou cas ca marche merci il me reste juste a modifier pour pouvoir avoirs les deux valeur en meme temps smilesmilesmilesmile

114

mai par contre a ton exemple je pige que dalle mdr

115

gol comment tu peux faire du C ss rien connaitre des pteurs ???
lorsque tu fais ca :
short *pteur=malloc(sizeof(short));
1 "bloc" de memoire pvant contenir un short est crée , et son adresse et stocké dans pteur
donc apres kan tu fé *pteur=3; tu mets le chiffre 3 à ds le bloc de mem pointé par *pteur
donc ensuite tu pe donner son adresse a toutes les fnc de la terre pour le modifer comme ds l'exmple
pigé ?
NTW !!!!!

116

eu non j'ai pas tou compri :sadsadsadsadsadsadsadsad:

117

bidoo :
autant pour moi tongue
1[(short*)buffer];
essaie plutot ca :short hauteur=*(short*)buffer; 
short largeur=
Tu n'as pas plus illisible que ça ? roll
Moi je ferais :
BITMAP *image = (BIMAP *)buffer;
hauteur = image->NumCols;
largeur = image->NumRows;
avatar
« Quand le dernier arbre sera abattu, la dernière rivière empoisonnée, le dernier poisson capturé, alors vous découvrirez que l'argent ne se mange pas. »

118

merci ca c'est super smilesmile

119

C'est moi qui ai pondu ce code "illisible". smile (Je reconnais tout de suite le style integer[array]. grin)
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

120

C'est que t trop fort...