1

Voilà, je commence à me mettre au C et j'ai donc lu le tuto sur ti-rex seulement le chapitre concernant la manipulation des chaînes de caractères ne contient qu'une page vide. De plus, j'ai remarqué que certains chapitres ne se terminaient pas "corectement" (genre une phrase coupée en plein milieu) et que les liens (notament pour les niveaux de gris et les librairies) n'étaient pas actifs.
De plus, j'ai remarqué une erreur dans l'explication de _rowread (La colonne, si on ne veut conserver que cette touche, aura donc, en binaire, comme valeur : 1101111. Il convient à présent de convertir cette valeur en hexadécimal (ce que votre TI sait faire !), et qui donne, dans ce cas : 0x10.) (<- c 0x6F)
Malgrès tout ça, je tiens à remercier Squale pour ce tuto, il m'a permit de m'initier au C
Cependant, j'aimerais vraiment que le chapitre sur les chaînes de caractère y soit.
Est-ce que ça pourrait se faire rapidement (dans la mesure du possible) ¿

2

balance un mail à rom1 (admin de ti-rex)
avatar
Webmaster du site Ti-FRv3 (et aussi de DevLynx)
Si moins de monde enculait le système, alors celui ci aurait plus de mal à nous sortir de si grosses merdes !
"L'erreur humaine est humaine"©Nil (2006) // topics/6238-moved-jamais-jaurais-pense-faire-ca

3

4

Poiur le pr avec _rowread, on m'en a déjà parlé, il me semble... mais vu que je n'ai pas fait de MAJ depuis [fort] longtemps...
enfin, ceux qui m'en ont parlé ont corrigé le pb par eux-même, donc, ça doit pas être si génant que ça smile
je tiens à remercier Squale pour ce tuto

de rien smile
Bon courage, et bonne continuation smile

pour les pb de pages coupées et/ou absentes, c'est en effet avec Rom1 qu'il faut voir, je n'y suis pour rien smile
avatar
Tutorial C (TI-89/92+/v200) - Articles Développement Web (PHP, Javascript, ...)
« What is the sound of Perl? Is it not the sound of a wall that people have stopped banging their heads against? » - Larry Wall

5

6

ok !
Merci jackiechan pour ces adresses.

7

Ah enfin, j'ai retrouvé celui là : http://www.ltam.lu/Tutoriel_Ansi_C/

8

ok, merci.
Par contre, j'ai un problème concernant les boites de dialogue.
Lorsque je met un champ request, ça va, j'arrive à faire marcher.
Par contre, s'il y en a au moins deux, c la galère complète, quelqu'un peut-il m'aider ¿

9

De toute façon, tu ne devrais pas utiliser _rowread directement, mais _keytest.
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é

10

pourkoi ?
qu'est ce qui ne vas pas dans rowread ?

11

Que c'est plus compliqué à utiliser correctement, et que ça ne s'adapte pas automatiquement aux différents modèles (TI-89, TI-92+/V200).
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

comment ça, ça s'adapte pas automatiquement aux différents modèles ?
à cause de la matrice clavier qui est différente ?
si c'est ça, franchement je m'en fout, je vais pas distribuer mes programmes puisque je vais programmer uniquement pour 89 (pour moi et mes pôtes).

13

Mathias31 :
comment ça, ça s'adapte pas automatiquement aux différents modèles ? à cause de la matrice clavier qui est différente ?

Oui.
Alors que des trucs comme _keytest(RR_ENTER) marchent toujours, parce que la valeur de RR_ENTER change en fonction du modèle.
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é

14

ok, mais je pense que j'aurais plus vite assimilé _rowread pour un seul modèle que les pseudo-constantes à utiliser sur plusieurs modèles.
parce que justement je ne ferais que sur 89.
par contre, et c'est bien normal, faudra que je m'y mettes si je veux m'élargir.

et puis est ce qu'on pourrait m'aider sur mon problème avec les boites de dialogue, à savoir que quand je met plus d'un request, ça marche pas ?

15

Pourrais-tu être plus précis?
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é

16

ah, en voulant mettre ce post, j'ai testé quelquechose, et j'ai réussi à avoir la chîne de caractère du premier request dans une variable et, si celle ci atteint son maximum de caractères, elle contient à la suite la chaine de caractère du deuxième request.


char joueur[20] = "";
char *teste;
HANDLE nom_joueur=DialogNewSimple(135, 50);
DialogAddTitle(nom_joueur, "Nom des joueurs", BT_OK, BT_CANCEL);
DialogAddRequest(nom_joueur, 2, 14, "Joueur 1 :", 0, 20, 21);
DialogAddRequest(nom_joueur, 2, 24, "Joueur 2 :", 20, 20, 21);
teste=&joueur;
DialogDo(nom_joueur, CENTER, CENTER, teste, NULL);
HeapFree(nom_joueur);
clrscr();
DrawStrXY(0, 0, joueur, A_NORMAL);
ngetchx();

donc voilà, imaginons que dans le premier request on entre : "moi"
ça affichera : "moi" quelle que soit la valeur du deuxième request.
par contre, si on y met : "undeuxtroisquatrecin" et dans le deuxième request on met, par exemple : "chiffres"
ça affichera : "undeuxtroisquatrecinchiffres"

alors ma question est de savoir comment avoir deux variables distinctes avec pour chacune le nom deux joueurs correspondants (pcq j'ai pas pigé comment fallait faire)

17

Si offset est 20 pour le deuxième request, MaxLen pour le premier devrait être 19, pas 20. (Il faut prévoir un emplacement libre pour l'octet nul qui termine la chaîne de caractères.)
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é

18

http://nitro.120.free.fr/prog/rowread.zip
javé fait ca en javascript et avec photoshop
ca donne le code _rowread pour chaque touche
jen suis fier meme si c tout pourrave smile

19

Ça ne sert plus à rien depuis qu'il y a _keytest.
Et puis la table des codes _rowread est dans la documentation de TIGCC.
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é

20

bon, alors, en remplaçant l'offset du second request par 21, quelle que soit la valeur que je met dans le champ joueur deux, ça ne me marque à l'écran que ce qu'il y a à l'écran, puis quand j'appuye sur une touche (instruction ngetchx(); ), Illegal instruction se marque en haut avec du noir de chaque côté et Vti est planté.
en fait mon problème c'est de récupérer ce qu'on a rentré dans le champ du request deux dans une variable (qui dans l'exemple serait joueur2).

21

t'as qu'à faire un buffer par champ request. Attends, je ressort une vieille source qui marchait...
Car seuls les cons ne reconnaissent pas leurs erreurs.
=========================================
Avis aux newbies, avant de poster, essayez ça ->[http://databob.free.fr/IFAQ/FAQ]

Membre de la [V4pOR T34m]
EvaSDK's Homepage > et c'est reparti

22

wé, mais justement, si je fais un buffer par request, y'aura trop d'arguments lors de l'activation de la boite de dialogue, non ?
(qui marchait ? ça veux dire que ça marche plus ?)

23

Donc en fait, je n'avais fait que un buffer, mais pour le copier dans des variables séparées, j'ai utilisé memcpy. Mais c'est une ancienne source ou j'ai fait les choses à la bourrin, je pense que je ferais ça autrement aujourd'hui (enfin faut voir smile)
fiche saisie_contact(HSym); //SAISIE UN CONTACT OU LE MODIFIE fiche saisie_contact(HSym HS) {      fiche f;      HANDLE HA_b;      int L=3*L_LONG+2*L_MOYEN+2*L_MIMOY+2*L_COURT;      char buffer[L];      short action;      memset(buffer,(0x00),L);            HA_b=DialogNewSimple (236,112);      DialogAddTitle     (HA_b,"Nouveau Contact (1/1)",BT_NONE,BT_NONE);       DialogAddRequest(HA_b,2  ,14,rg[0],0                                                                                               ,L_LONG  ,25);       DialogAddRequest(HA_b,2  ,26,rg[1],  L_LONG                                                                                ,L_MOYEN ,25);       DialogAddRequest(HA_b,2  ,38,rg[2],  L_LONG+  L_MOYEN                                                       ,L_MIMOY ,25);       DialogAddRequest(HA_b,2  ,50,rg[3],  L_LONG+  L_MOYEN+  L_MIMOY                              ,L_MIMOY ,25);       DialogAddRequest(HA_b,2  ,62,rg[4],  L_LONG+  L_MOYEN+2*L_MIMOY                              ,L_LONG  ,25);       DialogAddRequest(HA_b,2  ,74,rg[5],2*L_LONG+  L_MOYEN+2*L_MIMOY                              ,L_LONG      ,25);       DialogAddRequest(HA_b,2  ,86,rg[6],3*L_LONG+  L_MOYEN+2*L_MIMOY                              ,L_COURT , 5);       DialogAddRequest(HA_b,116,86,rg[8],3*L_LONG+  L_MOYEN+2*L_MIMOY+  L_COURT     ,L_COURT , 6);       DialogAddRequest(HA_b,2  ,98,rg[7],3*L_LONG+  L_MOYEN+2*L_MIMOY+2*L_COURT     ,L_MOYEN ,25);      action=DialogDo(HA_b,CENTER,CENTER,buffer,NULL);      HeapFree(HA_b);      if(action==13)      {           memcpy(f.nom,buffer                                                                                                         ,L_LONG );     //           memcpy(f.pre,buffer+  L_LONG                                                                                ,L_MOYEN);     //           memcpy(f.tel,buffer+  L_LONG+  L_MOYEN                                                       ,L_MIMOY);     //           memcpy(f.tep,buffer+  L_LONG+  L_MOYEN+  L_MIMOY                              ,L_MIMOY);     //           memcpy(f.bal,buffer+  L_LONG+  L_MOYEN+2*L_MIMOY                              ,L_LONG );     //           memcpy(f.adr,buffer+2*L_LONG+  L_MOYEN+2*L_MIMOY                              ,L_LONG );     //           memcpy(f.cop,buffer+3*L_LONG+  L_MOYEN+2*L_MIMOY                              ,L_COURT);     //           memcpy(f.dob,buffer+3*L_LONG+  L_MOYEN+2*L_MIMOY+  L_COURT     ,L_COURT);     //           memcpy(f.vil,buffer+3*L_LONG+  L_MOYEN+2*L_MIMOY+2*L_COURT     ,L_MOYEN);     //           add_fiche(HS,f,2);      }      return f; }
Car seuls les cons ne reconnaissent pas leurs erreurs.
=========================================
Avis aux newbies, avant de poster, essayez ça ->[http://databob.free.fr/IFAQ/FAQ]

Membre de la [V4pOR T34m]
EvaSDK's Homepage > et c'est reparti

24

Mathias31, ton buffer est trop petit. Il faut un buffer de 42 caractères (2*(20+1): pour chaque Request, 20 + un emplacement pour le caractère nul), pas 20.
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é

25

ok, je vous remercie, en fait, si j'ai bien compris, il y aura tout dans un seul buffer et il faudra répartir entre les différentes variable.

26

Oui, et il suffit d'ajouter l'offset que tu as passé à DialogAddRequest pour avoir un pointeur sur la variable.
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é

27

ok.
maintenant j'ai une autre interogation, comment faire pour avoir une liste contenant des chaînes de caractère ?

28

char *liste[nb_de_chaines]={"chaine1","chaine2"};

29

Un ajout à ce qu'a posté jackiechan:
Si tu veux faire une liste de chaînes de caractères qui ont toutes la même longueur, c'est, si je ne me trompe pas:
char liste[number_of_strings][length_of_strings] = {...};
avatar
Membre de la TI-Chess Team.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
Co-admin de TI-Planet.