1

Vala...Après m'être interessé à la création de variables TiOS, j'aimerais savoir comment on fait pour ouvrir une variable TiOS et lire son contenu...

Bon je c ouvrir une variable, et je voudrais lire des EXPR et des STR. Mais la structure de ces variables est tordue, j'ai rien comprit au fonctionnement (des inverses, des groupes d'hexa, des je c plus quoi...)

- Y'a-t-il des fonctions dans TIGCC qui peuvent "traduire" des variables EXPR et STR en int et char ?
- Si non, comment faire ?
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

2

SYM_ENTRY *sym_entry=SymFindPtr($(varname));
if (!sym_entry) exit(960);
HANDLE hVar=sym_entry->handle;
if(!hVar) exit(960);
ESI var_esi=HToESI(hVar);
if ((GetArgType(var_esi)!=POSINT_TAG)&&(GetArgType(var_esi)!=NEGINT_TAG)) exit(210);
int integer=GetIntArg(var_esi);
if (GetArgType(var_esi)==NEGINT_TAG) integer=-integer;


SYM_ENTRY *sym_entry=SymFindPtr($(varname));
if (!sym_entry) exit(960);
HANDLE hVar=sym_entry->handle;
if(!hVar) exit(960);
ESI var_esi=HToESI(hVar);
if (GetArgType(var_esi)!=STR_TAG) exit(210);
char *string=GetStrnArg(var_esi);

[edit]Edité par Kevin Kofler le 30-03-2002 à 00:16:14[/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é

3

Merci top
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

4

D'ailleurs, je n'ai pas choisi les codes d'erreur au hasard:
* 960 = "Undefined variable"
* 210 = "Data type"
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é

5

ok, ça marche top
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

6

Ah oui au fait, on peut créer des variables avec push_longint et push_ANSI_string comme ça ?
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

7

non !
avatar
納 豆パワー!
I becamed a natto!!!1!one!

8

dommage sad

on fait ça comment alors ?
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

9

avec fopen etc...
avatar
納 豆パワー!
I becamed a natto!!!1!one!

10

ah ouais... mais je préfere éviter ces fonctions et utiliser vat.h...
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

11

Tu fais comme j'avais fait dans la routine que je t'avais postée il y avait quelque temps: tu mets les données sur la pile d'expressions avec push_longint et compagnie, tu alloues un bloc avec HeapAlloc (pas avec malloc), tu recopies les données de la pile d'expressions vers ce bloc avec memcpy et tu assignes le handle du bloc à l'entrée approprié de la structure SYM_ENTRY retournée par SymAdd.
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é

12

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é

13

ah oui en effet
avatar
納 豆パワー!
I becamed a natto!!!1!one!

14

ah oué... ça marche aussi pr les chaines et les nums ? parfait, encore merci Kevin top
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

15

Arf, tant que j'y suis :

char *sub_defaut(int var_typ,char *var_var1,char *var_var2)
{
SYM_ENTRY *var_sym=SymFindPtr(var_typ==1?var_var1:var_var2,0);
if(peek(HToESI(var_sym->handle))==0x1F) // Num
{
if(var_typ==1) return (char*)"";
else if(var_typ>=2) return tios_liste(var_var1,tios_entier(var_var2));
}
else if(peek(HToESI(var_sym->handle))==0x2D) // Chaine
{
if(var_typ==1) return tios_chaine(var_var1);
else if(var_typ==2) return tios_liste(var_var1,1);
else if(var_typ==3) return tios_chaine(var_var2);
}
else // Autre
{
if(var_typ==1) return (char*)"";
else if(var_typ>=2) return tios_liste(var_var1,1);
}
return NULL;
}


A marche pas, biscotte var_var1 fonctionne, mais pas var_var2... Pourtant elles sont toutes les 2 définies de la même manière dans le programme... Voyez vous une erreur évidente ?
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)