Bonsoir Coemos 70
j'ai jeté un petit oeil à ton code, ça m'a l'air de marcher.
je décortiquerai demain si j'en ai le temps...
pour info voici un certain nombre de subs que j'avais réalisées.
ça vaut ce que ça vaut mais jusqu'ici je ne les ai pas mises en défaut.
Je ne garantis pas le résultat esthétique du post, c'est la 1ère fois que j'inclus du code ...
bon j'essaye[code]' ------------------------------------------------------------------------------
'
' Conversion Décimal <-> binaire
'
'
' ------------------------------------------------------------------------------
sub dec2bin(nombre%)
if variable ("retour$") = 0 then dim retour$
retour$ = ""
while nombre% > 0
if mod(nombre%,2) = 0
retour$ = "0"+retour$
else
retour$ = "1"+retour$
end_if
nombre% = int(nombre%/2)
end_while
end_sub
sub bin2dec(chaine$)
dim_local i%
if variable ("retour%") = 0 then dim retour%
retour% = 0
for i% = len(chaine$) to 1 step -1
retour% = retour% + val(mid$(chaine$,i%,1))*power(2,len(chaine$)-i%)
next i%
end_sub
' ------------------------------------------------------------------------------
'
' Conversion Décimal <-> Octal
'
'
' ------------------------------------------------------------------------------
sub oct2dec(chaine$)
dim_local i%
if variable ("retour%") = 0 then dim retour%
retour% = 0
for i% = len(chaine$) to 1 step -1
retour% = retour% + val(mid$(chaine$,i%,1))*power(8,len(chaine$)-i%)
next i%
end_sub
sub dec2oct(nombre%)
if variable ("retour$") = 0 then dim retour$
retour$ = ""
while nombre% > 0
select mod(nombre%,
case 0 : retour$ = "0" + retour$
case 1 : retour$ = "1" + retour$
case 2 : retour$ = "2" + retour$
case 3 : retour$ = "3" + retour$
case 4 : retour$ = "4" + retour$
case 5 : retour$ = "5" + retour$
case 6 : retour$ = "6" + retour$
case 7 : retour$ = "7" + retour$
end_select
nombre% = int(nombre%/
end_while
end_sub
' ------------------------------------------------------------------------------
'
' Conversion Décimal <-> base N (0 < N entier <32)
'
'
' ------------------------------------------------------------------------------
sub baseN2dec(chaine$,base%)
dim_local i%
if variable ("retour%") = 0 then dim retour%
chaine$ = upper$(chaine$)
retour% = 0
for i% = len(chaine$) to 1 step -1
if asc(mid$(chaine$,i%,1)) < 58
retour% = retour% + (asc(mid$(chaine$,i%,1))-48)*power(base%,len(chaine$)-i%)
end_if
if asc(mid$(chaine$,i%,1)) > 64
retour% = retour% + (asc(mid$(chaine$,i%,1))-55)*power(base%,len(chaine$)-i%)
end_if
next i%
end_sub
sub dec2baseN(nombre%,base%)
if variable ("retour$") = 0 then dim retour$
retour$ = ""
while nombre% > 0
select mod(nombre%,base%)
case 0 : retour$ = "0" + retour$
case 1 : retour$ = "1" + retour$
case 2 : retour$ = "2" + retour$
case 3 : retour$ = "3" + retour$
case 4 : retour$ = "4" + retour$
case 5 : retour$ = "5" + retour$
case 6 : retour$ = "6" + retour$
case 7 : retour$ = "7" + retour$
case 8 : retour$ = "8" + retour$
case 9 : retour$ = "9" + retour$
case 10 : retour$ = "A" + retour$
case 11 : retour$ = "B" + retour$
case 12 : retour$ = "C" + retour$
case 13 : retour$ = "D" + retour$
case 14 : retour$ = "E" + retour$
case 15 : retour$ = "F" + retour$
case 16 : retour$ = "G" + retour$
case 17 : retour$ = "H" + retour$
case 18 : retour$ = "i" + retour$
case 19 : retour$ = "J" + retour$
case 20 : retour$ = "K" + retour$
case 21 : retour$ = "L" + retour$
case 22 : retour$ = "M" + retour$
case 23 : retour$ = "N" + retour$
case 24 : retour$ = "o" + retour$
case 25 : retour$ = "P" + retour$
case 26 : retour$ = "Q" + retour$
case 27 : retour$ = "R" + retour$
case 28 : retour$ = "S" + retour$
case 29 : retour$ = "T" + retour$
case 30 : retour$ = "U" + retour$
case 31 : retour$ = "V" + retour$
case 32 : retour$ = "W" + retour$
end_select
nombre% = int(nombre%/base%)
end_while
end_sub
' ------------------------------------------------------------------------------
'
' Conversion Décimal <-> hexa
'
'
' ------------------------------------------------------------------------------
sub hex2dec(chaine$)
chaine$ = upper$(chaine$)
if variable ("retour%") = 0 then dim retour%
retour% = hex(chaine$)
end_sub
sub dec2hex(nombre%)
if variable ("retour$") = 0 then dim retour$
retour$ = hex$(nombre%)
end_sub