Page 1 sur 1

[resolu] For i ... to ... décroissant ?

Publié : jeu. 31/mars/2011 15:30
par Ar-S

Code : Tout sélectionner

For i = 100 To 90
  Delay (500)
  Debug "Num : "+Str(i)
  i-1
Next i
MessageRequester("plop","plop")
en gros je fais un programme qui doit insérer une image à une position donnée.
Un repertoire contient
1.jpg, 2.jpg, 3.jpg etc
NbreTotal=3

L'utilisateur veut insérer une image donnée en 2eme position par exemple.
choixutilisateur=2

Donc le soft compte le nombre d'images total et tente de renommer les images ainsi :
renamefile(str(i)+".jpg",str(i+1)+".jpg")

Vous comprendrez qu'il faut donc commencer par la dernière image..
Donc je fais un

Code : Tout sélectionner

for i = NbreTotal to choixutilisateur
renamefile(str(i)+".jpg",str(i+1)+".jpg")
i-1
next
Je viens de découvrir que For ... To ne fonctionnait pas en décroissant ??
Hallucine-je ? On est obligé de passer par une liste ou un tableau ?

Re: For i ... to ... décroissant ?

Publié : jeu. 31/mars/2011 15:51
par flaith
step -1 ?

Code : Tout sélectionner

For i = 3 To 0 Step -1
  Debug i
Next

Re: For i ... to ... décroissant ?

Publié : jeu. 31/mars/2011 15:52
par Ar-S
arrgh je viens de trouver..
effectivement, simplement ça..
On croit qu'on connait les fonction de base et en ré-ré-ré-ré-ré-ouvrant la doc, la solution saute au visage.
Merci tout de même

code corrigé :

Code : Tout sélectionner

for i = NbreTotal to choixutilisateur step-1
renamefile(str(i)+".jpg",str(i+1)+".jpg")
next

P.S : c'est tout de même un peu bête de devoir utiliser step-1. Pb et surtout For/To pourraientt gérer l'ordre décroissant simplement que ce serait pas plus mal ;)
En tout cas ça m'aura pris pas mal de temps pour ce truc tout con.

Re: [resolu] For i ... to ... décroissant ?

Publié : jeu. 31/mars/2011 21:42
par case
non car tu peux avoir besoin d'un step -2 ou en cas de nombres a virgule flottante un step -0.25 et ça aucun langage de programmation ne pourra jamais le deviner.

Re: [resolu] For i ... to ... décroissant ?

Publié : jeu. 31/mars/2011 22:25
par Ar-S
Et si on ajoutait i-1 avant le next ? enfin l'important c'est que ça fonctionne.
Je ne l'oublierai pas. :)

Re: [resolu] For i ... to ... décroissant ?

Publié : jeu. 31/mars/2011 23:09
par Backup
8O Step fait partie du Basic depuis les debuts ! ( 1964 ) :roll:
tout les basics integrent ça :
C64,Zx81,MO5,TO7,TO9,TI99/4a, Apple 2e, ORIC ATMOS, ...etc

si on commence a changer ça, c'est plus du basic , autant se mettre au C

deja qu'on a pas la possibilités en PureBasic de mettre des variables flottantes... meme des variables tout court.. (j'ai demandé ça il y a plus de 10 ans... j'attends toujours ...)

ceci :

Code : Tout sélectionner

a.f=2.2
b.f=10.5
c.f=0.05

For i = a.f To b.f Step c.f
    Debug i
Next i

est un code normal en basic , pourtant Purebasic ne sait pas faire .. :roll:

( je sais qu'on peut faire autrement .... )

mais n'empeche... :roll: