1

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

2

Y'a la commande IsMainFolder je crois.

3

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]
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é

4

La commande IsMainFolderStr ne marche qu'avec des strings.

5

>Kevin: Il n'y a pas plus simple que de comparer un à un les caractères ?

6

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]
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é

7

Merci beaucoup Kevin ! C'est cool
Watcha @ka JBJ @ka @ngelfire

ICQ: 109631918

8

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...
avatar
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.

9

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.
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é