Hello, j'utilise le code suivant pour cacher tout les dossiers et les variables du répertoire MAIN, seulement, comment faire pour décacher celui-ci sans obtenir un 'protected memory violation'? Peut on mettre une commande :
If (nom répertoire = main){
SymPtr->flags.bits.collapsed = 1;}
else
{SymPtr->flags.bits.collapsed = 1;
SymPtr->flags.bits.hidden = 1; }
SYM_ENTRY *SymPtr = SymFindFirst(NULL, 4);
while(SymPtr){
SymPtr->flags.bits.collapsed = 1;
SymPtr->flags.bits.hidden = 1;
SymPtr = SymFindNext();}
SYM_ENTRY *SymPtr1 = SymFindFirst($(main),1);
while(SymPtr1){
SymPtr1->flags.bits.hidden = 1;
SymPtr1 = SymFindNext();}
Watcha @ka JBJ @ka @ngelfire
ICQ: 109631918
PpHd Le 10/12/2001 à 15:16 Y'a la commande IsMainFolder je crois.
Pour tester si un répertoire est main:
if(*(unsigned long *)SymPtr==(((unsigned long)'m'<<24)+((unsigned long)'a'<<16)+((unsigned long)'i'<<8)+((unsigned long)'n'))&&!((unsigned char *)SymPtr)[5])
[edit]Edité par Kevin Kofler le 11-12-2001 à 21:49:40[/edit]
PpHd Le 11/12/2001 à 12:14 La commande IsMainFolderStr ne marche qu'avec des strings.
niuob Le 11/12/2001 à 16:03 >Kevin: Il n'y a pas plus simple que de comparer un à un les caractères ?
Tu peux faire un strncmp: strncmp(SymPtr->name,"main",8); ou strncmp((char *)SymPtr,"main",8); ou encore strncmp(SymPtr,"main",8); si tu veux avoir le code le plus court possible.
Mais ce que j'avais proposé est beaucoup plus rapide! (C'est un cmpi.l - la partie droite sera calculée par GCC et transformée en une constante - suivi d'un tst.b si GCC code correctement.)
C'est bien comme ça que c'est codé. Mais il faut mettre des parenthèses en plus (j'ai corrigé mon message d'avant). (Les priorités des opérateurs sont vraiment bizarres en C.)
[edit]Edité par Kevin Kofler le 11-12-2001 à 21:50:34[/edit]
Merci beaucoup Kevin ! C'est cool
Watcha @ka JBJ @ka @ngelfire
ICQ: 109631918
Kevin : Les priorités des opérateurs sont vraiment bizarres en C
Ben je crois qu'on ne peut pas faire mieux. Et puis en faisant autrement elles paraîtraient bizarres dans d'autres expressions...

Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 :
www.ti-fr.com.
Quelques idées personnelles
ici.
Pourquoi + est-il prioritaire par rapport à << ??? Les shifts sont des multiplications ou des divisions, donc c'est complètement illogique!
Ne me dites pas que c'est pour qu'on puisse faire cout << 2+3; en C++ - les priorités des opérateurs du C ont été fixées à l'époque où on n'avait même pas encore une vague idée qu'un C++ qui permette de redéfinir les opérateurs puisse exister à un moment.