Accueil Ti-Gen Foire Aux Questions Chat sur le chan #tigcc sur IRC
Liste des membres Rechercher Aide
Bienvenue Invité !   Se connecter             Mes sujets   
Administrer
0 membre(s) et 1 visiteur(s) actif(s) durant les 5 dernières minutes Utilisateurs actifs : Aucun membre + 1 visiteur
Avant de poster sur le forum, il y a des régles de bases à respecter pour une bonne entente et un respect de tous.
Veuillez lire la charte du forum.
  :: Index » Forum Ti68K » Programmation TI-Basic » Local (18 réponse(s))
./POST DE DEPART (post n°0)   Marquer comme non lu.
Fl0D Ecrit le: Mardi 5 avril 2005 à 18:32 Déconnecté(e)    Voir le profil de Fl0D Envoyer un email à Fl0D Visiter le site WEB de Fl0D Envoyer un message privé à Fl0D  

Bonjour,

Voici un petit problème que j'ai...
J'ai rentré manuellement ça :
"a" [sto] L0
"b" [sto] L1
"c" [sto] L3
...
"z" [sto] L25


Et j'aimerais les déclarer avec Local pour pas qu'il se mette dans le dossier, sans avoir à les déclarer une par une... J'ai pensé à une boucle style :
For i,0,25
expr("L"&string(i))[sto]L
Local L
EndFor

Mais ça ne marche pas... Auriez-vous une idée ?
Merci.
Programmeur : Ma page
    
./Post n°1   Marquer comme non lu.
geogeo Ecrit le: Mardi 5 avril 2005 à 18:39 Déconnecté(e)    Voir le profil de geogeo Envoyer un email à geogeo Visiter le site WEB de geogeo Envoyer un message privé à geogeo  


Impossible de déclarer une variable locale dans une boucle!
Webmaster du site.
Programmeur sur TI68K. Arkanoid, Nebulus, GFA-Basic.

Plus d'informations sur GFA-Basic (un langage Basic pour TI68K).
http://www.tigen.org/gfabasic
    
./Post n°2   Marquer comme non lu.
limmt Ecrit le: Mardi 5 avril 2005 à 19:01 Déconnecté(e)    Voir le profil de limmt Envoyer un email à limmt Visiter le site WEB de limmt Envoyer un message privé à limmt  


non c'est pas ca.
Il faut que tu fasse
Local #L
Il faut une idirection, sinon c'est la variable L qui sera locale.
Et faut qu'il y ait une chaine de cars dnas L, par de expr donc ;)
http://www.falco-fr.com/ - http://www.jump67.com/ - http://www.msf-league.com/
    
./Post n°3   Marquer comme non lu.
Fl0D Ecrit le: Mardi 5 avril 2005 à 19:35 Déconnecté(e)    Voir le profil de Fl0D Envoyer un email à Fl0D Visiter le site WEB de Fl0D Envoyer un message privé à Fl0D  

mmm.. j'ai mis ça
For i,0,25
"L"&string(i)[sto]L
Local #L
EndFor


ça me donne
Invalid Variable Name in a Local statement


Autre chose : c'est quoi la différence entre expr et # ?

edit : En fait ça devrait marcher au moins comme ça si je peux pas faire des boucles avec Local :
For i,0,25
expr("L"&string(i))[sto]L
DelVar L
EndFor

-Edité le Mardi 5 avril 2005 à 19:51 par Fl0D-
Programmeur : Ma page
    
./Post n°4   Marquer comme non lu.
limmt Ecrit le: Mardi 5 avril 2005 à 20:06 Déconnecté(e)    Voir le profil de limmt Envoyer un email à limmt Visiter le site WEB de limmt Envoyer un message privé à limmt  


ben le deuxième marche.
http://www.falco-fr.com/ - http://www.jump67.com/ - http://www.msf-league.com/
    
./Post n°5   Marquer comme non lu.
Thor Ecrit le: Mardi 5 avril 2005 à 20:52 Déconnecté(e)    Voir le profil de Thor Envoyer un email à Thor Visiter le site WEB de Thor Envoyer un message privé à Thor  


Une indirection c'est pas trés simple a comprendre mais en clair il faut que tu sache que :
expr("12") transforme (enfin essaie) la chaine de caractère en nombre donc ici ça te donnera 12
# n'a pas du tout la meme signification : si tu fait :
"var" -> l
12 -> #l

alors la variable l n'aura pas la valeur 12 mais elle restera à "var". Par contre ça aura pour effet de mettre 12 dans la variable var (crée en quelque sorte par #l)
Voila je pense que j'ai dit le principal :D
Cyril MOTTIER aka {==Thor==}
Modérateur général du forum de Tigen
[Etudiant à l'Institut National des Sciences Appliquées (INSA) de Rennes]
Mon site perso c'est ici
    
./Post n°6   Marquer comme non lu.
Folco Ecrit le: Mercredi 6 avril 2005 à 11:46 Déconnecté(e)    Voir le profil de Folco Envoyer un email à Folco Envoyer un message privé à Folco  


moi rien comprendre. Quand je fais:
Prgm
0->i
expr("Local l"&string(i))
EndPrgm

-> error: invalid outside a program or a function :/
<<< Kernel Extremist©®™ >>>
Pas la peine d'aller là plus d'une fois tous les six mois...

"Il faut apprendre pour savoir qu'il faut apprendre pour savoir."
    
./Post n°7   Marquer comme non lu.
limmt Ecrit le: Mercredi 6 avril 2005 à 12:41 Déconnecté(e)    Voir le profil de limmt Envoyer un email à limmt Visiter le site WEB de limmt Envoyer un message privé à limmt  


tu l'a bien fait dans un prgm et pas dans HOME?? #gni#
http://www.falco-fr.com/ - http://www.jump67.com/ - http://www.msf-league.com/
    
./Post n°8   Marquer comme non lu.
Pollux Ecrit le: Mercredi 6 avril 2005 à 13:05 Déconnecté(e)    Voir le profil de Pollux Envoyer un email à Pollux Envoyer un message privé à Pollux  

euh... les Local sont interprétés a la tokenization, et n'ont aucun effet apres : leur seul but est de permettre au tokenizeur de rajouter un TAG devant chaque variable locale pour dire qu'elle est locale. Donc ca n'a aucun sens de faire "Local #variable" ou "expr("Local var")", puisque le tokenizeur ne saura pas quelles variables marquer comme locales...

(d'ailleurs ca doit etre possible de gagner de la place sur un programme tokenizé en virant les trucs "inutiles" du style de Local, meme si evidemment on ne pourra plus detokenizer le programme apres... ce genre de chose pourrait meme servir a faire un bon logiciel de protection contre la modification d'un programme basic =))
    
./Post n°9   Marquer comme non lu.
Folco Ecrit le: Mercredi 6 avril 2005 à 13:36 Déconnecté(e)    Voir le profil de Folco Envoyer un email à Folco Envoyer un message privé à Folco  


limmt-> ah oué tiens, j'avais pas pensé #triso#
Pollux -> et secure? %)
<<< Kernel Extremist©®™ >>>
Pas la peine d'aller là plus d'une fois tous les six mois...

"Il faut apprendre pour savoir qu'il faut apprendre pour savoir."
    
./Post n°10   Marquer comme non lu.
FpgForce Ecrit le: Mercredi 6 avril 2005 à 14:03 Déconnecté(e)    Voir le profil de FpgForce Envoyer un email à FpgForce Envoyer un message privé à FpgForce  

secure n'est pas compatible ams>2.05 il me semble.
    
./Post n°11   Marquer comme non lu.
kaz00 Ecrit le: Mercredi 6 avril 2005 à 14:12 Déconnecté(e)    Voir le profil de kaz00 Envoyer un email à kaz00 Envoyer un message privé à kaz00  

par contre tu peux faire plus simple, c'est rentrer les valeurs dans une seule liste, et mettre cette liste en local.
    
./Post n°12   Marquer comme non lu.
Fl0D Ecrit le: Mercredi 6 avril 2005 à 14:14 Déconnecté(e)    Voir le profil de Fl0D Envoyer un email à Fl0D Visiter le site WEB de Fl0D Envoyer un message privé à Fl0D  

Merci tous,

J'ai trouvé, ça marche ce code :
For i,0,25
"L"&string(i)[sto]L
DelVar #L
EndFor

Bon ça ne prend pas tant de temps que ça à la fin du prog donc c'est bon :)

En fait le fait de mettre expr(L) comme variable, ça delete (ou déclare) en fait les caractères qu'il y a à l'intérieur de la variable lol. Du coup pour mon prog ça supprimait, a, b, c ... des variables qui n'existaient pas !

Quant au expr() et # je ne savais pas trop la différence et j'essayais si ça marchait tant mieux...
Programmeur : Ma page
    
./Post n°13   Marquer comme non lu.
Fl0D Ecrit le: Mercredi 6 avril 2005 à 14:14 Déconnecté(e)    Voir le profil de Fl0D Envoyer un email à Fl0D Visiter le site WEB de Fl0D Envoyer un message privé à Fl0D  

K@zoo >> Trop tard... :)
Programmeur : Ma page
    
./Post n°14   Marquer comme non lu.
Pollux Ecrit le: Mercredi 6 avril 2005 à 15:23 Déconnecté(e)    Voir le profil de Pollux Envoyer un email à Pollux Envoyer un message privé à Pollux  

Martial> je sais plus ce qu'il en est de secure, mais tous les programmes de protection étaient tres primaires et se contournaient facilement (soit a la main a l'editeur hexa, soit avec un programme fait pour)
    
./Post n°15   Marquer comme non lu.
limmt Ecrit le: Mercredi 6 avril 2005 à 19:09 Déconnecté(e)    Voir le profil de limmt Envoyer un email à limmt Visiter le site WEB de limmt Envoyer un message privé à limmt  


c'est con de protéger des programmes basics
http://www.falco-fr.com/ - http://www.jump67.com/ - http://www.msf-league.com/
    
./Post n°16   Marquer comme non lu.
Kevin Kofler Ecrit le: Mercredi 6 avril 2005 à 20:54 Déconnecté(e)    Voir le profil de Kevin Kofler Envoyer un email à Kevin Kofler Visiter le site WEB de Kevin Kofler Envoyer un message privé à Kevin Kofler  


²

Et Pollux, même si tu vires les tags pour la commande Local, on peut facilement reconstruire cette commande Local manquante en modifiant quelques lignes dans le détokéniseur sous LGPL de Tokens89. (On rencontre une variable marquée locale avec le LOCALVAR_TAG, hop, on la marque Local.)
-Edité le Mercredi 6 avril 2005 à 20:55 par Kevin Kofler-
Membre de l'équipe de TIGCC: http://tigcc.ticalc.org
Mainteneur du portage Linux/Unix de TIGCC: http://tigcc.ticalc.org/linux/
Membre de l'équipe de CalcForge: http://www.calcforge.org:70/

Participez à la reprise de Ti-Gen!
    
./Post n°17   Marquer comme non lu.
Folco Ecrit le: Mercredi 6 avril 2005 à 22:37 Déconnecté(e)    Voir le profil de Folco Envoyer un email à Folco Envoyer un message privé à Folco  


certainement, de toute façon, à l'éditeur hexa, heu, on peut à peu près tout faire :D (inspiré de Lapalice)
<<< Kernel Extremist©®™ >>>
Pas la peine d'aller là plus d'une fois tous les six mois...

"Il faut apprendre pour savoir qu'il faut apprendre pour savoir."
    
./Post n°18   Marquer comme non lu.
Pollux Ecrit le: Jeudi 7 avril 2005 à 20:41 Déconnecté(e)    Voir le profil de Pollux Envoyer un email à Pollux Envoyer un message privé à Pollux  

Kevin Kofler :
Et Pollux, même si tu vires les tags pour la commande Local, on peut facilement reconstruire cette commande Local manquante en modifiant quelques lignes dans le détokéniseur sous LGPL de Tokens89. (On rencontre une variable marquée locale avec le LOCALVAR_TAG, hop, on la marque Local.)
-Edité le Mercredi 6 avril 2005 à 20:55 par Kevin Kofler-

Bien sur (encore qu'on peut faire plus subtil genre en renommant une variable globale pour qu'elle ait le meme nom qu'une variable locale :p), mais par exemple il n'y a pas de version oncalc de Tokens89, ce qui découragerait pas mal de gens...
    
  :: Index » Forum Ti68K » Programmation TI-Basic » Local (18 réponse(s))
Pages : 1/1     « [1] » »|

.Répondre à ce sujet
Les boutons de code
[B]old[I]talic[U]nderline[S]trikethrough[L]ine Flip Hori[Z]ontallyFlip [V]erticallySha[D]ow[G]low[S]poilerCode [G][C]ite
Bullet [L]istList Item [K] Link [H][E]mail[P]icture SmileysHelp
Couleurs :
Saisissez votre message
Activer les smileys
     

Forum de Ti-Gen v3.0 Copyright ©2004 by Geoffrey ANNEHEIM
Webmaster: Kevin KOFLER, Content Admins: list, Server Admins: Tyler CASSIDY and Kevin KOFLER, DNS Admin: squalyl
Page générée en 41.85ms avec 18 requetes