60

je comprend pas j'ai mit ca pour voir toutes les variables contenues dans le repertoire sachan qu'il n'y a qu'un repertoire et plusierus variable dedans mai je n'ai rien a l'ecran pk??
	char files[50][9];
  SYM_ENTRY *SymPtr = SymFindFirst (dossier[0], 1);

	for(i=0;i<50;i++) 
	strcpy(files[i],""); 
  while(SymPtr)
  {
   strcat(files[i],SymPtr->name);
   SymPtr = SymFindNext();
   i++;
  }
  clrscr();
	y=0;
	for(i=0;i<20;i++)
	{
		DrawStr (5, y, files[i], A_NORMAL);
		y+=9;
	}
	ngetchx();

61

bidoo
: mais maintenant a cause de vous je vais devoir reouvrir tou mes vieux progr ou j'avais converti tou les tag
Tu faisais comment ? smile
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. »

62

avant, j'avais pris les valeurs de francois leiber
pour ton probleme cered2000 , 2 ptite fnc qui vont t'aider
#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;
}
char* testtyperep(char *rep,short type)
{
short i=0,k=0;
char nom[50][20];
short j = 0;
SYM_ENTRY *SymPtr = SymFindFirst (SYMSTR ("main"), FO_SINGLE_FOLDER);
while (SymPtr)
{
strcpy(nom[j],rep);
strcat(nom[j],"\");
strcat (nom[j++], SymPtr->name);
SymPtr = SymFindNext ();
}
for(i=0;i<j;i++)
{
if(testtype(nom[i],type)==0){strcpy(nom[i],"");continue;}
k++;
}
char (*vartyp)[18]=calloc(k*18,sizeof(char)); //merci kevin !
clrscr();k=0;
for(i=0;i<=j;i++)
{
if(strcmp(nom[i],"")!=0)strcpy(vartyp[k++],nom[i]);
}
clrscr();
for(i=0;i<k;i++)
{
	printf("%s\n",vartyp[i]);
}
ngetchx();
return *vartyp; // j'ai pas eu le temps de tester le retour donc voila
}

void _main (void)
{
char rep[8]="main";
testtyperep(rep,PIC_TAG);
}



ta plu ka faire une boucle pour verifier ds chaque repertoire
euh...

63

merci ca marche nikle juste un problem c'est que j'arrive pas a trouver le type qui correspond a ce que renvoi "testtyperep" merci smilesmile

64

bah lis le code posté ci-dessus:

char* testtyperep(char *rep,short type)
avatar
Que cache le pays des Dieux ? - Forum Ghibli - Forum Littéraire

La fin d'un monde souillé est venue. L'oiseau blanc plane dans le ciel annonçant le début d'une longue ère de purification. Détachons-nous à jamais de notre vie dans ce monde de souffrance. Ô toi l'oiseau blanc, l'être vêtu de bleu, guide nous vers ce monde de pureté. - Sutra originel dork.

65

ben oui mai quand je fait
char *file;
file=testtyperep(char *rep,short type);
ben ca marche pas sadsad
et sinon j'ai un autre prob en faite c'est apres un lancement du prog il se transforme en expression pour le tios c'est plus un prog asm et il ne fai plu que 235 au lieu de la taille c'est bizzard c'est quoi le bug lol??? merci

66

non en faite c'est meme pas ca c'est quand je veut tester un autre repetoire que le main ben ca marche pas il n'affiche pas les variable qui sont dans ce repertoire

67

lol c'est bon pour le sprob des repertoir mai reste le prob avec le type qui est renvoye sadsadsadsadsad

68

dsl
le retour de la fonction je l'ai pas testé ni travailler c normal qu'il ne marche pas
je l'ai fait en 10 min ce prgm ...
euh...

69

non ya un bug aussi quand meme au bout de plusieur lancement ben ca plante et au debut ca affiche bien que le nom du repertoire sous la forme rep\var et apers ca affiche ca
rep\var
texte foireux en dessous
et ca apres ca que ca palnte pourquoi??

70

oui pour le main je l'ai remplace pas la var rep mai pour le bug et le type renvoye tu pourra lme dire merci smilesmilesmilesmilesmile

71

confus
je l'ai fait 30 fois d'affilé en changeant 3 fois de repertoire, aucun probleme
mets des ngetchx et des printf un peu partout pour voir où se situent les erreurs...
euh...

72

surtout ne met pas ca :
char *file;
file=testtyperep(char *rep,short type)
euh...

73

ben faut que je mette quoi alors?? car il faut que je puisse recupere la variable apres. car je vai faire un menu d'ouverture de fichier comme txtview le fai avec les txt moi ca sera avec les pic

74

ba dsl j'en sai fichtre rien ,
pour le moment j'ai testé 2 3 trucs mais j'ai pas touvé et là y fô absolument qu je bosse j'ai pas encore revisé l'h-geo et c'est lundi...
voila la version ss bug :
#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;
}
void testtyperep(char *rep,short type)
{
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);
strcat(nom[j],"\");
strcat (nom[j++], SymPtr->name);
SymPtr = SymFindNext ();
}
for(i=0;i<j;i++)
{
if(testtype(nom[i],type)==0){strcpy(nom[i],"");continue;}
k++;

}
char vartyp[k][18];
clrscr();k=0;
for(i=0;i<=j;i++)
{
if(strcmp(nom[i],"")!=0)strcpy(vartyp[k++],nom[i]);
}
clrscr();
for(i=0;i<k;i++)
{
	printf("%s\n",vartyp[i]);
}
ngetchx();
}
void _main (void)
{
char rep[8];
clrscr();
printf("entrez le nom du dossier : \n");
scanf("%s",rep);
testtyperep(rep,PIC_TAG);
}
euh...

75

Cerede2000>Une fois ton prog terminé, je voudrais bien avoir tes sources.
Visitez mon site : http://www.bobti89.fr.st
Testez mon forum ici

76

merci c deja pas mal smilesmilesmilesmile il faudra que je vois pour quil me renvoi une var au lieu de l'afficher et voila merci smilesmilesmilesmilesmile:

77

lol mon prog ne m'appartien pas dsl il fodra que je demande et si il est ok pas de prob wink

78

ce serait sympa si kevin jetait un coup d'oeil à tous ce que l'on fait ici et qu'il donne son avis....
juste pour savoir ce qui va pas
euh...

79

et oila : il est hyper lent car tres mal fait et pas soigné du tout...
#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;
}

void 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);
    strcat(nom[j],"\");
    strcat (nom[j++], SymPtr->name);
    SymPtr = SymFindNext ();
  }
  for(i=0;i<j;i++)
  {
    if(testtype(nom[i],type)==0){strcpy(nom[i],"");continue;}
    k++;
  }
  clrscr();k=0;
  for(i=0;i<=j;i++)
  {
    if(strcmp(nom[i],"")!=0)strcpy(&retour[20*k++],nom[i]);
  }
  /*clrscr();
  for(i=0;i<k;i++)
  {
  	printf("%s\n",&retour[20*i]);
  }
  ngetchx();*/
}

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

void _main (void)
{
   char *dossier=calloc(20*9,sizeof(char)); 
  getdoss(dossier);
  short i,j,k;;short test;short cpteur=0;
  /*clrscr();
  for(j=0;strcmp(&dossier[j*9],"")!=0;j++) printf("%s\n",&dossier[j*9]);
  ngetchx();*/
  char *nom2=calloc(100*20,sizeof(char));
  char nom[50][20];for(i=0;i<50;i++)strcpy(nom[i],"");
  i=0;
  for(j=0;strcmp(&dossier[j*9],"")!=0;j++) 
  {
    testtyperep(&dossier[j*9],PIC_TAG,nom2);
    k=0;
    while(strcmp(&nom2[k*20],"")!=0)
     {     	
      test=0;
      for(i=0;strcmp(nom[i],"")!=0;i++)if(strcmp(nom[i],&nom2[20*k])==0)test++;
       if(test==0)strcpy(nom[cpteur++],&nom2[20*k]);
       k++;
     }
  }
  clrscr();
  HANDLE h=PopupNew("pictures", 50);  
  for(i=0;strcmp(nom[i],"")!=0;i++)
   {
	   PopupAddText(h, -1, nom[i], i+1);     
   }
 test=PopupDo(h, CENTER, CENTER, 0);
 free(dossier);  
 free(nom2);
 printf("vous avez choisi l'image\ndont le chemin est :\n%s",nom[test-1]);
 ngetchx();
 }

essaie de l'optimiser et de corriger mes nbreuses erreurs top
euh...

80

j'ai fait ca
char *testtyperep(char *rep,short type)
{
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);
strcat(nom[j],"\");
strcat (nom[j++], SymPtr->name);
SymPtr = SymFindNext ();
}
for(i=0;i<j;i++)
{
if(testtype(nom[i],type)==0){strcpy(nom[i],"");continue;}
k++;

}
char vartyp[k][18];
clrscr();k=0;
for(i=0;i<=j;i++)
{
if(strcmp(nom[i],"")!=0)strcpy(vartyp[k++],nom[i]);
}
clrscr();
DrawStr (5, 10, vartyp[0], A_NORMAL);
i=0;
short key=0;
while(key!=13)
	{
	key=ngetchx();
	if(key==340) i+=1;
	else if(key==337) i-=1;
	
	if(i<0) i=j-1;
	else if(i>j-1) i=0;
	clrscr();
	DrawStr (5, 10, vartyp[i], A_NORMAL);
	}
return vartyp[i];
}

et
char *files=malloc(19);
	files=testtyperep(dossier[i],PIC_TAG);
	clrscr();
	DrawStr (5, 10, files, A_NORMAL);
	ngetchx();
	free(files);

mais ca me fai une adresse error avec la barre noir en haut de l'ecran pourquoi??

81

c'est le free qui fait plante pk????
et sinon j'arrive pas afficher mon pic sauve pourtan je fai ca
short show_picvar(char *SymName, short x, short y, short Attr)
	{
	SYM_ENTRY *sym_entry = SymFindPtr(SymName, 0);
	if (!sym_entry) return FALSE;
	if (peek(HToESI (sym_entry->handle)) != PIC_TAG) return FALSE;
	BitmapPut(x, y, HeapDeref (sym_entry->handle) + 2, ScrRect, Attr);
	return TRUE;
	}
char *testtyperep(char *rep,short type)
{
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);
strcat(nom[j],"\");
strcat (nom[j++], SymPtr->name);
SymPtr = SymFindNext ();
}
for(i=0;i<j;i++)
{
if(testtype(nom[i],type)==0){strcpy(nom[i],"");continue;}
k++;
}
char vartyp[k][18];
clrscr();k=0;
for(i=0;i<=j;i++)
{
if(strcmp(nom[i],"")!=0)strcpy(vartyp[k++],nom[i]);
}
clrscr();
DrawStr (5, 10, vartyp[0], A_NORMAL);
i=0;
short key=0;
while(key!=13)
	{
	key=ngetchx();
	if(key==340) i+=1;
	else if(key==337) i-=1;
	
	if(i<0) i=j-1;
	else if(i>j-1) i=0;
	clrscr();
	DrawStr (5, 10, vartyp[i], A_NORMAL);
	}
char files[9];
strncpy (files, vartyp[i]+strlen(rep)+1,8);
return files;
}

il retourne le nom du fichier choisit ensuite
char *file=malloc(8);
	file=testtyperep(dossier[i],PIC_TAG);
	clrscr();
	DrawStr (5, 10, file, A_NORMAL);
	show_picvar ($(file), 20, 20, A_NORMAL);
	ngetchx();
	free(file);

et ca n'affiche pas le fichier choisit avec la fonction show_picvar et puis il ya le free qui plante merci de m'aider smilesmile

82

il fo faire comme ceci :
#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 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);     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) {   short i=0;     SYM_ENTRY *psym = SymFindFirst(NULL, 4);     while (psym!= NULL && i<20 )     {      sprintf(&dossier[9*i++],psym->name);      psym = SymFindNext();     }      } char* testalldoss(short type) {  short i,j,k,cpteur=0;      char *dossier=calloc(20*9,sizeof(char));    getdoss(dossier);   char *nom2=calloc(50*20,sizeof(char));   char nom[50][20];for(i=0;i<50;i++)strcpy(nom[i],"");   i=0;   for(j=0;strcmp(&dossier[j*9],"")!=0;j++)    {    k=testtyperep(&dossier[j*9],type,nom2);     for(i=0;i<k;i++)strcpy(nom[cpteur++],&nom2[20*i]);    }      HANDLE h=PopupNew("files", 50);     for(i=0;strcmp(nom[i],"")!=0;i++)    {         PopupAddText(h, -1, nom[i], i+1);         }   k=PopupDo(h, CENTER, CENTER, 0);    HeapFree(h);    free(dossier);   free(nom2);    if(k==0)return NULL;   char *retour=calloc(strlen(nom[k-1]),sizeof(char));   strcpy(retour,nom[k-1]);   return retour; } void showpicture(char *nom) {  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 (0,0,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)]; */ } short chtype(void) {  HANDLE h=PopupNew("quelle type", 80);   char typec[10][40]={"les chaînes de caractère","listes ou matrices","programmes ou fonctions","data","GDB","images","textes","figures","macros","programmes ou librairies en assembleur"};  short types[10]={45,217,220,221,222,223,224,225,226,243 };  short i;  for(i=0;i<10;i++)  {    PopupAddText(h, -1,typec[i], i+1);       }  i=PopupDo(h, CENTER, CENTER, 0);    HeapFree(h);  if(i==0)return 0;  return types[i-1]; } void _main (void) { char *chemin=NULL; short type=chtype(); if(type==0)return; chemin=testalldoss(type);   if(type==PIC_TAG && chemin!=NULL)showpicture(chemin);  }

et puis tou le monde peux l'utiliser pour rechercher n'importe quel type de fichier
sur toute sa calculatrice !
euh...

83

hop la !
ni vu ni connu ...
euh...

84

c'est pas bien du tout !
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

85

mer bidoo mai il ya un probleme que je n'arrive pas a trouver c'est que la memoir baisse a chaque execution du programme et ca n'est pas l'historique. car je le vide apres chaque lancement mais il ya une perte quanq meme pourquoi?? merci

86

mai j'ai un autre probleme car en faite il fodrai que la fonction n'affiche pas un menu popup mai juste quelle renvoi une var avec dedans dossier\var.pic c'est possible??? qu'on puisse utiliser comme var[i] et selon i on a les different dossier\var

87

essaie avec le last edit et remplace la derniere ligne de main par :
if(type==PIC_TAG && chemin!=NULL)showpicture(chemin); 
free(chemin);

en fait moi aussi mais je sais pas où g oublié de liberer ds pteurs
chez moi je pers 18 byte à chaque fois que j'execute en visualisant donc le probleme doit se trouver ds la fnc showpicture
euh...

88

pour avoir juste les pic t'enleve la fnc qui va chercher le type et tu remplace le type par PIC_TAG
et je comprend pas les mots que tu ecris, tu veux recupere dans _main un tableau contenant les chemins de tous les pic? oubien juste une fonction qui te renvois un pic choisi..
et pis jvé pas tout te faire !,
euh...

89

car moi en faite voila ce que j'ai fait
char *testtyperep(char *rep,short type) 
{ 
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); 
strcat(nom[j],"\"); 
strcat (nom[j++], SymPtr->name); 
SymPtr = SymFindNext (); 
} 
for(i=0;i<j;i++) 
{ 
if(testtype(nom[i],type)==0){strcpy(nom[i],"");continue;} 
k++; 
 
} 
char vartyp[k][18]; 
clrscr();k=0; 
for(i=0;i<=j;i++) 
{ 
if(strcmp(nom[i],"")!=0)strcpy(vartyp[k++],nom[i]); 
} 
clrscr();
DrawStr (5, 10, vartyp[0], A_NORMAL);
i=0;
short key=0;
while(key!=13)
	{
	key=ngetchx();
	if(key==340) i+=1;
	else if(key==337) i-=1;
	
	if(i<0) i=k-1;
	else if(i>k-1) i=0;
	clrscr();
	DrawStr (5, 10, vartyp[i], A_NORMAL);
	}
return vartyp[i]; 
}

if(men==21)
{
	FontSetSys(F_6x8);
	char dossier[20][9]; 
	short i; 
	for(i=0;i<20;i++) 
	strcpy(dossier[i],""); 
	i=0; 
	SYM_ENTRY *psym = SymFindFirst(NULL, 4); 
	while (psym!= NULL && i<20 ) 
	{ 
		strcat(dossier[i],psym->name); 
		psym = SymFindNext(); 
		i++; 
	} 
	short h=CompteDossier();
	//clrscr();
	//DrawStr (5, 10, dossier[0], A_NORMAL);
	i=0;
	short key=0;
	while(key!=13)
	{
	if(key==340) i+=1;
	else if(key==337) i-=1;
	
	if(i<0) i=h-1;
	else if(i>h-1) i=0;
	clrscr();
	
	DrawClipRect(MakeWinRect(20,20,140,80), &(SCR_RECT){{0, 0, 160, 100}}, B_ROUNDED|A_NORMAL);
	DrawLine (20,29,140,29, A_NORMAL);
	DrawStr ((160 - DrawStrWidth("Ouvrir", FontGetSys())) / 2, 21,"Ouvrir", A_NORMAL);
	DrawStr (22,32,"Dossier: ", A_NORMAL);
	DrawStr (22,47,"Image: ", A_NORMAL);
	DrawStr (22,62,"Apercu: ", A_NORMAL);
	
	DrawStr (70, 31, dossier[i], A_NORMAL);
	key=ngetchx();
	}

	char *file=malloc(9); 
	file=testtyperep(dossier[i],PIC_TAG); 
	clrscr(); 
	DrawStr (5, 10, file, A_NORMAL); 
	show_picvar (SYMSTR (file), 20, 20, A_NORMAL); 
	ngetchx(); 
	//free(file);
}

mai j'ai un probleme de pointeur aussi avec le free masquer en bas quand je veut le libere ben ca plante sinon a part ce problme la tou fonctionne alors comment faire pour ca pointeur merci car dans la fonction testtyperep a la compilation j'ai un warning qui dit Fonctions returne adress of local variable donc ca vient de ca je pense mai comme faire je voit pas la merci smilesmile

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