Page 1 sur 1

[R] Base 36 calcul

Posté : dim. 25 mai 2008 23:15
par Yoyo86220
Bonsoir,

je voudrai que ma variable "$i" soit en base 36 c'est a dire:
0 1 2 3 4 5 6 7 8 9 a b c d e f g h i j k l m n o p q r s t u v w x y z
et quand on indique dans une boucle :

Code : Tout sélectionner

While 1
 $i=$i+1
 If $i= plus de 18 caractaires then ExitLoop ;<== voilà se que je voudrai fair aussi
 FileWriteLine(...)
WEnd

Re: [..] Base 36 calcul

Posté : dim. 25 mai 2008 23:40
par Tlem
Vous mélangez numérique et alphanumérique.
Si vous utilisez :

Code : Tout sélectionner

$i=$i+1
vous ne pouvez pas utiliser :

Code : Tout sélectionner

If $i= plus de 18 caractaires then ExitLoop
puisque $i est une variable numérique et ne sera incrémentée que de un et non de 1 caractère !

En l'état, votre code n'a aucun sens.
Veuillez donner plus d'explications sur sa fonction ou son utilité. :shock:

Re: [..] Base 36 calcul

Posté : lun. 26 mai 2008 06:48
par Yoyo86220
oui il sera agrémenté de un bien entendu mais exemple:

0+1=1 <== 1 caractaires...
1+1=2
2+1=3
3+1=4
4+1=5
...
z+1=10 <== 2 caractaires...
...
zz+1=100 <== 3 caractaires jusqu'a
...
zzzzzzzzzzzzzzzzzz <== caractaires
se qui donne 18 puissance 36 possibilités je croix

Re: [..] Base 36 calcul

Posté : lun. 26 mai 2008 06:58
par Tlem
Selon votre exemple, si :
z+1=10

alors combien font :
9+1=?

Votre demande n'est pas claire du tout.
Donnez plus de détails sur votre besoin, voir même faites le tableau de votre 'base 36', et au besoin expliquer ce que vous voulez faire car il existe peut être une solution plus simple.

Re: [..] Base 36 calcul

Posté : lun. 26 mai 2008 07:07
par Yoyo86220
9+1=a

(c'est en base 36)
a+1=b
b+1=c
...

Re: [..] Base 36 calcul

Posté : lun. 26 mai 2008 07:12
par Yoyo86220
se qui génèrai toutes les possibilités d'écriture avc (tout les chiffre et toute les lettres...) de maximum 18 caractaires... (il y en a pour un moment a mon avi sachant qu'il devra fair 18^36 calcul :shock: )

Re: [..] Base 36 calcul

Posté : lun. 26 mai 2008 07:55
par Tlem
Yoyo86220 a écrit :9+1=a

(c'est en base 36)
a+1=b
b+1=c
...
Autant pour moi ... J'avais pas les idées claires. ;)

Voici votre solution : http://www.autoitscript.com/forum/index ... st&p=94300

Re: [..] Base 36 calcul

Posté : lun. 26 mai 2008 19:34
par Yoyo86220

Code : Tout sélectionner

$num = 0
#include <NumBaseConvert.au3>
While 1
$tu = _NumBaseConvert($num, 2, 36)
MsgBox(0, "", 'Nombre en Base 36 : ' & $tu)
$num = $num+1
WEnd
j'arrive à rien... si quelq'un à une idée... ne pas ésiter...
je pense avoir compri qu'il fau que le nombre $num soi en binnair... comment fair ?
sachant que je veux:

Code : Tout sélectionner

0+1=1
1+1=2
[...]
9+1=a
[...]
z+1=10
[...]

Re: [..] Base 36 calcul

Posté : lun. 26 mai 2008 21:16
par Tlem
Hi hi hi, je suis content, car cette fois ci, c'est vous qui n'avez pas les yeux en face des trous ...

En effet, vous faites :

Code : Tout sélectionner

$tu = _NumBaseConvert($num, 2, 36)
Or dans ce cas vous convertissez une base binaire (Base 2) en base 36.

Rectifiez votre base de départ en décimale et tout rentrera dans l'ordre. ;)

Re: [..] Base 36 calcul

Posté : lun. 26 mai 2008 22:48
par Yoyo86220
^^ oui bien vu je n'y avais même pas pensé rien de plus simple :)
Solution:

Code : Tout sélectionner

         #include <NumBaseConvert.au3>
         $num=0
         While 1
             $tu = _NumBaseConvert($num, 10, 36)
             If $tu > 18 caractères then Msgbox(1,"Info","C'est fini!")
             FileWriteLine("c:\Pass.txt", $tu)
             $num = $num+1
         WEnd
autre question comment fair ceci? :

Code : Tout sélectionner

If $tu > 18 caractères then Msgbox(1,"Info","C'est fini!")

Re: [..] Base 36 calcul

Posté : lun. 26 mai 2008 22:54
par Tlem
Utilisez la fonction StringLen pour connaitre la longueur d'une chaîne.