[TUTO] Syntaxe du fichier *.TNS
Posted: 22 Dec 2009, 01:21
Bon, alors je crée un nouveau topic pour présenter les découvertes que j'ai fait grâce à celles de GeoGeo et de CiWtron
...concernant la syntaxe des fichier *.tns, le fichier source !!
Alors, GeoGeo a dit ici : http://tibank.forumactif.com/programmat ... .htm#74148
comment la syntaxe globale s'organise.
Pré-requis :
- Pour l'instant, on ne peut pas éditer les fichiers *.tns crées avec un OS supérieur ou égal à la version 1.2
- Connaître le langage (X)HTML
- Une "bonne" maîtrise des logiciels WinRAR, TI nSpire Computer Software 1.0.50 (la version est importante), Editeur (X)HTML tel que DreamWaver
___________________________________________________________________________________________
[color=brown]Tutoriel sur la syntaxe d'un fichier *.tns
___________________________________________________________________________________________
Voici les grands axes :
I. Ouvrir et éditer un fichier *.tns
II. Comprendre la syntaxe
III. Glossaire des variables
I. Ouvrir et éditer un fichier *.tns
II. Comprendre la syntaxe
_A. La structure générale d'un fichier *.tns
_B. La structure générale du fichier "Document.xml"
On reporte le nombre d'activités dans Document.xml comme suit (XXX)
_C. La structure générale du fichier "Problem1.xml"
___a) Exemple
Voici un exemple de code "Problem1.xml" non indenté :
Voici le même code indenté :
Nous pouvons voir qu'il s'agit d'un document XML très basique, d'une syntaxe telle que :
___b) La structure Globale d'un fichier "Problem1.xml"
Il existe différents types de page :
- Pour créer plusieurs affichages (4 au maximum) on change la valeur de .
/! Si le nombre d'affichage ne correspond pas au nombre d'ensemble , l'OS plantera et rebootera ! /!
Exemple de code correct avec 2 pages et sur la deuxième page, un double affichage de type 1
___c) Les Variables dans "Problem1.xml"
Les variables sont exprimées dans le "Problem1.xml", c'est pour cela que les variables ne sont pas globales entre les activités !
Elles sont placées dans l'élément juste après son élément parent
Chaque variable est définie dans un élément différent.
- Chaque élément contient plusieurs éléments renseignant sur la variable.
-- Nom de la variable
-- Arguments nécessaires (pour les fonctions et programmes)
-- Valeur de la Variable
Exemple de fichier "Problem1.xml" ayant une variable integer (simple variable) :
Je suppose que la variable "t" correspond au type de variable, ainsi :
La suite très prochainement [/color]
...concernant la syntaxe des fichier *.tns, le fichier source !!
Alors, GeoGeo a dit ici : http://tibank.forumactif.com/programmat ... .htm#74148
comment la syntaxe globale s'organise.
Pré-requis :
- Pour l'instant, on ne peut pas éditer les fichiers *.tns crées avec un OS supérieur ou égal à la version 1.2
- Connaître le langage (X)HTML
- Une "bonne" maîtrise des logiciels WinRAR, TI nSpire Computer Software 1.0.50 (la version est importante), Editeur (X)HTML tel que DreamWaver
___________________________________________________________________________________________
[color=brown]Tutoriel sur la syntaxe d'un fichier *.tns
___________________________________________________________________________________________
Voici les grands axes :
I. Ouvrir et éditer un fichier *.tns
II. Comprendre la syntaxe
III. Glossaire des variables
I. Ouvrir et éditer un fichier *.tns
Show/Hide spoilerAfficher/Masquer le spoiler
- Télécharger la version 1.0 de l'émulateur CAS sur TI-bank (attention, c'est une version de 30 jours d'utilisation !!)
- Créer un fichier avec l'application géométrie, et créer un simple point en plein milieu (pour commencer)
- Enregistrer le ficher sur le Bureau (par exemple) nommé "point.tns" (pour nous y retrouver)
- Ouvrir le fichier point.tns avec 7zip, WinRAR, WinZIP ou autres...car en fait, c'est un ficher *.zip !!
- Ouvrir le fichier "Problem1.xml" avec DreamWaver (par exemple)
- Là les choses sérieuses commencent :
- Quitter l'émulateur CAS 1.0
- modifier le fichier Problem1.xml
- Enregistrer le fichier Problem1.xml, puis répondre "Oui" à la question que pose WinRAR : "Oui, mettre à jour l'archive"
II. Comprendre la syntaxe
_A. La structure générale d'un fichier *.tns
Show/Hide spoilerAfficher/Masquer le spoiler
- Document.xml
- Problem1.xml
- Problem2.xml
- etc...
_B. La structure générale du fichier "Document.xml"
On reporte le nombre d'activités dans Document.xml comme suit (XXX)
Show/Hide spoilerAfficher/Masquer le spoiler
- Code: Select all
?xml version="1.0" encoding="UTF-8" ?
<doc ver="1.0">
<settings>
<lang>64</lang>
<dfmt>283783068</dfmt>
<tfmt>270613925</tfmt>
<curr>283783156</curr>
<devfontsize>1</devfontsize>
<expf>1</expf>
<ddig>7</ddig>
<angf>1</angf>
<exapp>1</exapp>
<cplxf>1</cplxf>
<unit>1</unit>
<vectf>1</vectf>
<base>1</base>
</settings>
<nps>XXX</nps>
</doc>
_C. La structure générale du fichier "Problem1.xml"
___a) Exemple
Voici un exemple de code "Problem1.xml" non indenté :
Show/Hide spoilerAfficher/Masquer le spoiler
- Code: Select all
?xml version="1.0" encoding="UTF-8" ?prob xmlns="urn:TI.Problem" ver="1.0"sym/symcard clay="0"flag0/flagwdgt xmlns:gg="urn:TI.GeoGrapher" type="TI.GeoGrapher" ver="1.0"gg:mFlags0/gg:mFlagsgg:value1/gg:valuegg:figgg:objsgg:pointgg:id1/gg:idgg:point_/gg:point_gg:x50/gg:xgg:y50/gg:ygg:acol0/gg:acolgg:adst3/gg:adstgg:asho1/gg:ashogg:aloc0/gg:alocgg:lbl/gg:lblgg:stat0/gg:stat/gg:pointgg:axes_systemgg:id2/gg:idgg:par1 /gg:pargg:axes_p/gg:axes_pgg:xuni1/gg:xunigg:yuni1/gg:yunigg:xmin−4/gg:xmingg:xmax16.2/gg:xmaxgg:ymin−4/gg:ymingg:ymax12.2/gg:ymaxgg:acol0/gg:acolgg:aast0/gg:aastgg:aazm1/gg:aazmgg:apth0/gg:apthgg:asho1/gg:ashogg:lbl/gg:lblgg:stat0/gg:stat/gg:axes_systemgg:axisgg:id3/gg:idgg:par2 /gg:pargg:xaxis/gg:xaxisgg:smrt2/gg:smrtgg:sm1−4/gg:sm1gg:sm216.2/gg:sm2gg:alco0/gg:alcogg:acst0/gg:acstgg:apst0/gg:apstgg:apth0/gg:apthgg:asho1/gg:ashogg:ales0/gg:alesgg:lblx/gg:lblgg:stat16/gg:stat/gg:axisgg:labelgg:id4/gg:idgg:par3 /gg:pargg:lbl_agg:t0.5/gg:tgg:dx0/gg:dxgg:dy0/gg:dy/gg:lbl_agg:chrs1 1 3 0 0 0 x/gg:chrsgg:deta0/gg:detagg:atta1/gg:attagg:x66.77500005/gg:xgg:y50.42499995/gg:ygg:atco0/gg:atcogg:afon0/gg:afongg:asho1/gg:ashogg:lbl/gg:lblgg:stat0/gg:stat/gg:labelgg:axisgg:id5/gg:idgg:par2 /gg:pargg:yaxis/gg:yaxisgg:smrt2/gg:smrtgg:sm1−4/gg:sm1gg:sm212.2/gg:sm2gg:alco0/gg:alcogg:acst0/gg:acstgg:apst0/gg:apstgg:apth0/gg:apthgg:asho1/gg:ashogg:ales0/gg:alesgg:lbly/gg:lblgg:stat16/gg:stat/gg:axisgg:labelgg:id6/gg:idgg:par5 /gg:pargg:lbl_agg:t0.5/gg:tgg:dx0/gg:dxgg:dy0/gg:dy/gg:lbl_agg:chrs1 1 3 0 0 0 y/gg:chrsgg:deta0/gg:detagg:atta1/gg:attagg:x49.82500005/gg:xgg:y63.37499995/gg:ygg:atco0/gg:atcogg:afon0/gg:afongg:asho1/gg:ashogg:lbl/gg:lblgg:stat0/gg:stat/gg:labelgg:gridgg:id7/gg:idgg:par2 /gg:pargg:grid_as/gg:grid_asgg:acol10066329/gg:acolgg:agst0/gg:agstgg:apth0/gg:apthgg:asho0/gg:ashogg:lbl/gg:lblgg:stat16/gg:stat/gg:gridgg:pointgg:id8/gg:idgg:point_/gg:point_gg:x53.45/gg:xgg:y55.8/gg:ygg:acol0/gg:acolgg:adst1/gg:adstgg:asho1/gg:ashogg:aloc0/gg:alocgg:lbl/gg:lblgg:stat0/gg:stat/gg:point/gg:objsgg:toolgg:ToolGraphergg:vis1/gg:vis/gg:ToolGrapher/gg:toolgg:anim1/gg:animgg:w200/gg:wgg:h200/gg:hgg:vpx40/gg:vpxgg:vpy64.85/gg:vpy/gg:fig/wdgt/card/prob
Voici le même code indenté :
Show/Hide spoilerAfficher/Masquer le spoiler
- Code: Select all
<?xml version="1.0" encoding="UTF-8" ?>
<prob xmlns="urn:TI.Problem" ver="1.0">
<sym></sym>
<card clay="0">
<flag>0</flag>
<wdgt xmlns:gg="urn:TI.GeoGrapher" type="TI.GeoGrapher" ver="1.0">
<gg:mFlags>0</gg:mFlags>
<gg:value>1</gg:value>
<gg:fig>
<gg:objs>
<gg:point>
<gg:id>1</gg:id>
<gg:point_></gg:point_>
<gg:x>50</gg:x>
<gg:y>50</gg:y>
<gg:acol>0</gg:acol>
<gg:adst>3</gg:adst>
<gg:asho>1</gg:asho>
<gg:aloc>0</gg:aloc>
<gg:lbl></gg:lbl>
<gg:stat>0</gg:stat>
</gg:point>
<gg:axes_system>
<gg:id>2</gg:id>
<gg:par>1</gg:par>
<gg:axes_p></gg:axes_p>
<gg:xuni>1</gg:xuni>
<gg:yuni>1</gg:yuni>
<gg:xmin>−4</gg:xmin>
<gg:xmax>16.2</gg:xmax>
<gg:ymin>−4</gg:ymin>
<gg:ymax>12.2</gg:ymax>
<gg:acol>0</gg:acol>
<gg:aast>0</gg:aast>
<gg:aazm>1</gg:aazm>
<gg:apth>0</gg:apth>
<gg:asho>1</gg:asho>
<gg:lbl></gg:lbl>
<gg:stat>0</gg:stat>
</gg:axes_system>
<gg:axis>
<gg:id>3</gg:id>
<gg:par>2</gg:par>
<gg:xaxis></gg:xaxis>
<gg:smrt>2</gg:smrt>
<gg:sm1>−4</gg:sm1>
<gg:sm2>16.2</gg:sm2>
<gg:alco>0</gg:alco>
<gg:acst>0</gg:acst>
<gg:apst>0</gg:apst>
<gg:apth>0</gg:apth>
<gg:asho>1</gg:asho>
<gg:ales>0</gg:ales>
<gg:lblx></gg:lbl>
<gg:stat>16</gg:stat>
</gg:axis>
<gg:label>
<gg:id>4</gg:id>
<gg:par>3</gg:par>
<gg:lbl_a>
<gg:t>0.5</gg:t>
<gg:dx>0</gg:dx>
<gg:dy>0</gg:dy>
</gg:lbl_a>
<gg:chrs>1 1 3 0 0 0 x</gg:chrs>
<gg:deta>0</gg:deta>
<gg:atta>1</gg:atta>
<gg:x>66.77500005</gg:x>
<gg:y>50.42499995</gg:y>
<gg:atco>0</gg:atco>
<gg:afon>0</gg:afon>
<gg:asho>1</gg:asho>
<gg:lbl></gg:lbl>
<gg:stat>0</gg:stat>
</gg:label>
<gg:axis>
<gg:id>5</gg:id>
<gg:par>2</gg:par>
<gg:yaxis></gg:yaxis>
<gg:smrt>2</gg:smrt>
<gg:sm1>−4</gg:sm1>
<gg:sm>212.2</gg:sm2>
<gg:alco>0</gg:alco>
<gg:acst>0</gg:acst>
<gg:apst>0</gg:apst>
<gg:apth>0</gg:apth>
<gg:asho>1</gg:asho>
<gg:ales>0</gg:ales>
<gg:lbl>y</gg:lbl>
<gg:stat>16</gg:stat>
</gg:axis>
<gg:label>
<gg:id>6</gg:id>
<gg:par>5</gg:par>
<gg:lbl_a>
<gg:t>0.5</gg:t>
<gg:dx>0</gg:dx>
<gg:dy>0</gg:dy>
</gg:lbl_a>
<gg:chrs>1 1 3 0 0 0 y</gg:chrs>
<gg:deta>0</gg:deta>
<gg:atta>1</gg:atta>
<gg:x>49.82500005</gg:x>
<gg:y>63.37499995</gg:y>
<gg:atco>0</gg:atco>
<gg:afon>0</gg:afon>
<gg:asho>1</gg:asho>
<gg:lb><l/gg:lbl>
<gg:stat>0</gg:stat>
</gg:label>
<gg:grid>
<gg:id>7</gg:id>
<gg:par>2</gg:par>
<gg:grid_as></gg:grid_as>
<gg:acol>10066329</gg:acol>
<gg:agst>0</gg:agst>
<gg:apth>0</gg:apth>
<gg:asho>0</gg:asho>
<gg:lbl></gg:lbl>
<gg:stat>16</gg:stat>
</gg:grid>
<gg:point>
<gg:id>8</gg:id>
<gg:point_></gg:point_>
<gg:x>53.45</gg:x>
<gg:y>55.8</gg:y>
<gg:acol>0</gg:acol>
<gg:adst>1</gg:adst>
<gg:asho>1</gg:asho>
<gg:aloc>0</gg:aloc>
<gg:lbl></gg:lbl>
<gg:stat>0</gg:stat>
</gg:point>
</gg:objs>
<gg:tool>
<gg:ToolGrapher>
<gg:vis>1</gg:vis>
</gg:ToolGrapher>
</gg:tool>
<gg:anim>1</gg:anim>
<gg:w>200</gg:w>
<gg:h>200</gg:h>
<gg:vpx>40</gg:vpx>
<gg:vpy>64.85</gg:vpy>
</gg:fig>
</wdgt>
</card>
</prob>
Nous pouvons voir qu'il s'agit d'un document XML très basique, d'une syntaxe telle que :
Show/Hide spoilerAfficher/Masquer le spoiler
variable valeur variable
Par exemple, ma première expérience a été de changer l'apparence d'un point, il s'agit de la variable "adst"
Donc : adst 1 adst
Voici les options :
Par défaut : 0. Gros Point noir
Par exemple, ma première expérience a été de changer l'apparence d'un point, il s'agit de la variable "adst"
Donc : adst 1 adst
Voici les options :
Par défaut : 0. Gros Point noir
- Gros Point blanc
- Petit Carré noir
- Petit Carré blanc
- Croix noire
- Plus noir
- Pixel noir
___b) La structure Globale d'un fichier "Problem1.xml"
Show/Hide spoilerAfficher/Masquer le spoiler
- Code: Select all
<?xml version="1.0" encoding="UTF-8" ?>
<prob xmlns="urn:TI.Problem" ver="1.0">
<card clay="0">
<wdgt xmlns:gg="urn:TYPE DE PAGE" type="TYPE DE PAGE" ver="1.0">
Variables
</wdgt>
</card>
</prob>
Il existe différents types de page :
- TI.Scratchpad Page de Calcul
- TI.GeoGrapher Géométrie
- tabulator Classeur "Excel"
- TI.Notepad Editeur Mathématique
- Pour créer plusieurs affichages (4 au maximum) on change la valeur de .
/! Si le nombre d'affichage ne correspond pas au nombre d'ensemble , l'OS plantera et rebootera ! /!
Exemple de code correct avec 2 pages et sur la deuxième page, un double affichage de type 1
Show/Hide spoilerAfficher/Masquer le spoiler
- Code: Select all
<?xml version="1.0" encoding="UTF-8" ?>
prob xmlns="urn:TI.Problem" ver="1.0">
<card clay="0">
<wdgt xmlns:sp="urn:TI.Scratchpad" type="TI.Scratchpad" ver="1.0">
</wdgt>
</card>
<card clay="1">
<wdgt xmlns:sp="urn:TI.Scratchpad" type="TI.Scratchpad" ver="1.0">
</wdgt>
<wdgt xmlns:sp="urn:TI.Scratchpad" type="TI.Scratchpad" ver="1.0">
</wdgt>
</card>
</prob>
___c) Les Variables dans "Problem1.xml"
Les variables sont exprimées dans le "Problem1.xml", c'est pour cela que les variables ne sont pas globales entre les activités !
Elles sont placées dans l'élément juste après son élément parent
Chaque variable est définie dans un élément différent.
- Chaque élément contient plusieurs éléments renseignant sur la variable.
-- Nom de la variable
-- Arguments nécessaires (pour les fonctions et programmes)
-- Valeur de la Variable
Exemple de fichier "Problem1.xml" ayant une variable integer (simple variable) :
Show/Hide spoilerAfficher/Masquer le spoiler
- Code: Select all
<?xml version="1.0" encoding="UTF-8" ?>
<prob xmlns="urn:TI.Problem" ver="1.0">
<sym>
<e t="3" f="0">
<n>vint</n>
<v>1</v>
</e>
</sym>
<card clay="0">
<wdgt xmlns:sp="urn:TI.Scratchpad" type="TI.Scratchpad" ver="1.0">
</wdgt>
</card>
</prob>
Je suppose que la variable "t" correspond au type de variable, ainsi :
- List (ex : {1})
- Matrix (ex : [1])
- Integer (ex : 1)
- Inconnu Programme ?
- String (ex : "1" avec " s'écrivant " q u o t ;"sans les espaces et sans les guillements)
- Function (ex : Func:Return x*y:EndFunc)
Show/Hide spoilerAfficher/Masquer le spoiler
- Code: Select all
<e t="6" f="0">
<n>vprog</n>
<p>x,y</p>
<v>Func:Return x*y:EndFunc</v>
</e>
La suite très prochainement [/color]