Sioc For i=1 to x Do??

vlad

PILOTE PRIVE
Messages
75
Réactions
0
Points
10
Hello !
J'ai une question subsidiaire :
Je sais que sioc ne possède pas de commande du type "For i=1 to x Do" ... ou "Do.. While" / "Until"

Y a til un moyen algorithmique pour faire la même chose ?
Bon après-midi.
 
Si tu me donnes un problème je te trouverais la solution je vois pas trop ce que tu veux dire...
 
Pour une boucle du genre for,next, regarde la fonction TIMER

TIMER


Variable = TIMER Parameter1 Parameter2 Parameter3

The script associated to the variable is run periodically, as indicated in Parameter3 (1/10 secs).

For each loop (the first one is run once the time indicated by Parameter3 has passed) the variable value increases/decreases as indicated by Parameter2. The process ends when the variable value reaches Parameter1.

Parameter1 : Variable, real constant or integer constant. Final value.


Parameter2 : Variable, real constant or integer constant. Increment/Decement.

Parameter3 : Variable, real constant or integer constant. Recurrence.

Example:

V9000 = TIMER 1000 5 10

Exemple d'une boucle équivalent à
Code:
[== BASIC ==]
for I = 0 to 10
  pause(100)
next I

en SIOC :

Code:
[== SIOC ==]
Var 0001, name I

Var 0002, name change
{
  &I = 0    
  &I = TIMER 10 ,1 ,100
}

Autre exemple :
Code:
[== basic ==]
for I = 10 to 0 step -1
   pause (100)
next I

Code:
[== SIOC ==]
Var 0001, name I

Var 0002, name change
{
  &I = 10    
  &I = TIMER 0 ,-1 ,100
}
 
Last edited by a moderator:
Alors jsuis plus ou moins d'accord désolé fab parce que la fonction timer se relance à chaque lecture et ça crée des bugs..
Si tu lie un potar à une fonction timer à chaque cran de 0a 255 elle se declenche et se superpose et ça fini avec un threat time out sioc

En gros la fonction timer peu servir bien sûr mais pas avec un variable qui bouge en permanence....
Corrige moi si jme trompe fab
 
Last edited by a moderator:
Je le sais bien, mais c'est ce qu'il y a de plus proche du for/next. ;)

Il y a peut être le moyen de vérifier la variable avant de lancer de nouveau la fonction Timer

Voilà un bout de code qui ne fait pas planter SIOC:

Code:
[== SIOC ==]
Var 0001, name I, Value 10 // initialisation de I à  10

Var 0002, name change
{
  IF &I = 10 // ne se lance que si I est égal à  10
  {
    &I = 0    
    &I = TIMER 10 ,1 ,100
  }
}
 
Last edited by a moderator:
Bonsoir tout le monde,

Merci pour vos réponses et propositions.
Je vais expérimenter tout cela.

Bonne soirée.
 
Bonjour Silvestar,

Je n'ai pas essayé les boucles.
La fonction timer seule pour les potars semble marcher.
A+
 
Bonjour Vlad ,
Tu parles de boucles For,While etc ...
Tu utilises du code autre que Sioc ou tu veux utiliser du code autre que sioc pour commander tes cartes ?
JeanMi
 
Bonjour,

J'utilise SIOC.
Je voulais juste savoir sil y avait une astuce pour effectuer une action n fois, vu que for... do... ou while... do... n'existe pas en langage sioc.

Exemple :
Code:
IF condition then
   {
   for i = 1 to 5
   do
     {
     Action
     }
   }
 
Retour
Haut