A + 1 = B OU affichage en Hexa ?
A + 1 = B OU affichage en Hexa ?
Bonjour,
je voudrais savoir comment faire pour trouver la lettre suivante d'un caractere ... genre B + 2 = D ... ?
Ou sinon afficher grâce a la Table des codes ASCII et leur correspondance
mais je vois pas comment faire ?
merci d'avance
je voudrais savoir comment faire pour trouver la lettre suivante d'un caractere ... genre B + 2 = D ... ?
Ou sinon afficher grâce a la Table des codes ASCII et leur correspondance
mais je vois pas comment faire ?
merci d'avance
Aussi , comment afficher un nombre dans une chaîne de caractère ?
Car j'ai une boucle et dans celle-ci j'affiche un message avec le nombre de fois qu'elle a été faites, mais je ne peux pas mix strings with numerical values ... comment faire ?
j'ai essayé Str() mais le chiffre revient à 0.
merci d'avance
Edit : merci la premire procedure me convient ^^' (jolie boucle :p)
Car j'ai une boucle et dans celle-ci j'affiche un message avec le nombre de fois qu'elle a été faites, mais je ne peux pas mix strings with numerical values ... comment faire ?
j'ai essayé Str() mais le chiffre revient à 0.
merci d'avance
Edit : merci la premire procedure me convient ^^' (jolie boucle :p)
Code : Tout sélectionner
For i = 1 To 100
ligne.s="on va compter :"+Str(i)+" et voila "
Debug ligne.s
Next i
Code : Tout sélectionner
Procedure.s beta(myletter$,offset)
myascii=Asc(myletter$)
mynewletter$=Chr(myascii+offset)
ProcedureReturn mynewletter$
EndProcedure
Debug beta("c",3)

faire court c'est bien, mais avec cette exemplekerkael a écrit :Code : Tout sélectionner
Procedure.s beta(myletter$,offset) myascii=Asc(myletter$) mynewletter$=Chr(myascii+offset) ProcedureReturn mynewletter$ EndProcedure Debug beta("c",3)
Code : Tout sélectionner
Debug beta("z",3)

Et bien, comme tu avais mis le code qui permettait de faire la boucle sur les 26- caractères, j'ai pas voulu le recopier. Comme ça il reste un peu de travail à faire à Shinao
Et puis comme la question d'origine ne demandait pas explicitement une rotation sur l'alphabet, mais mentionnait aussi table Ascii et caractère, sans faire le tour, tu peux aussi aussi considérer mon code comme universel.
Les offsets négatifs sont acceptés tant dans mon code que dans le tien, mais si on veut boucler vers le bas dans ton code, on tombe toujours sur a. De la même manière, tout offset supérieur à 26 dans ton code donne la lettre z.
Mon code est court ET fonctionnel. De surcroit il remplit le cahier des charges. 

Et puis comme la question d'origine ne demandait pas explicitement une rotation sur l'alphabet, mais mentionnait aussi table Ascii et caractère, sans faire le tour, tu peux aussi aussi considérer mon code comme universel.
Les offsets négatifs sont acceptés tant dans mon code que dans le tien, mais si on veut boucler vers le bas dans ton code, on tombe toujours sur a. De la même manière, tout offset supérieur à 26 dans ton code donne la lettre z.


Allez, pour faire plaisir à Dobro 
Mais peut-être que Shinao ne veut pas de tout cela ... et si on lui demandait.
J'ai bon, là ? 

Mais peut-être que Shinao ne veut pas de tout cela ... et si on lui demandait.
Code : Tout sélectionner
Procedure.s beta(myletter$,offset)
myascii=Asc(myletter$)
If myascii<97 Or myascii>122
mysortie$="Ne fonctionne qu'avec les les lettres minuscules !"
Else
;Debug "myletter$ :" + myletter$
;Debug "offset :" + Str(offset)
;Debug "offset%26 :" + Str(offset % 26)
mynewascii=myascii+(offset%26)
;Debug "mynewascii :" + Str(mynewascii)
If mynewascii>122
mynewascii=mynewascii-26
ElseIf mynewascii<97
mynewascii=mynewascii+26
EndIf
;Debug "mynewascii again :" + Str(mynewascii)
;Debug Chr(mynewascii)
mynewletter$=Chr(mynewascii)
mysortie$=mynewletter$
EndIf
ProcedureReturn mysortie$
EndProcedure
Debug beta("i",2) ; affiche k 2eme lettre après i
Debug beta("r",19) ; affiche k, en faisant une fois le tour par le haut
Debug beta("a",-120) ; affiche k; en faisat plusieurs fois le tour par le bas
Debug beta("B",5) ; affche "Ne fonctionne qu'avec les les lettres minuscules !" puisque B sort du tableau des minuscules ! : :?:

Sûrement!!!
Tiens! Court, fonctionnel, bio et tout le toutim...
Tiens! Court, fonctionnel, bio et tout le toutim...
Code : Tout sélectionner
Procedure.S Omega(A.S, D.I)
ProcedureReturn Chr((Asc(UCase(A))+D+456911)%26+65+Asc(A)-Asc(UCase(A)))
EndProcedure
Dernière modification par Ollivier le mer. 01/juil./2009 13:05, modifié 1 fois.
Sinon, et pour ceux qui ne connaissent pas la division modulo :
offset%26 donne le reste de la division entière d'offset par 26 ...
Donc :
si offset est compris entre 0 et 26, offset%26=offset.
si offset > 26, par exemple offset=28, 28%26=2, le reste de 28/26
Ça permet de considérer les cycles de valeur 26.

Code : Tout sélectionner
mynewascii=myascii+(offset%26)
Donc :
si offset est compris entre 0 et 26, offset%26=offset.
si offset > 26, par exemple offset=28, 28%26=2, le reste de 28/26
Ça permet de considérer les cycles de valeur 26.
