- Descriptif des fonctions
- @OuExclu(v1;v2) v1 et v2 sont des valeurs entières, la fonction renvoie un Ou Exclusif effectué digit par digit en base 2
- @CarOuExclu(c1;c2) c1 et c2 sont des caractères , la fonction effectue un Ou Exclusif entre les codes des deux caractères et renvoie le caractère correspondant au résultat
- si c1=c2, le Ou Exclusif donne 0, qui n'a pas de caractère correspondant : la fonction renvoie une chaîne vide
- > Si c1 ou c2 est une chaine ou une cellule vide, le code utilisé dans le Ou Exclusif est 0 (qui n'a pas de caractère correspondant)
- L'"autoréciprocité" du Ou exclusif est ainsi préservée
- @ChaineOuExclu(origine;masque) Origine et Masque sont des chaînes de caractère, Masque ne doit pas contenir d'espaces.
La fonction effectue un OuEx entre les codes des caractères ayant la même position dans les deux chaînes et convertit le résultat en un caractère, puis renvoie une chaîne constituée de tous ces caractères.
- Si Masque est plus petit que Origine il est répété autant de fois que nécessaire.
- Attention : la fonction risque de génèrer une erreur lorsque l'origine et la chaîne contiennent le même caractère au même endroit, puisque la fonction Ou Ex renvoie alors la valeur 0, qui n'a pas de caractère correspondant.
- Astuce : ecrire la chaine origine (le message) en MAJUSCULES et utiliser uniquement minuscules, chiffres et caractères unusuels pour la clé.
- Déclaration des fonctions (LotusScript)
Public Function ouexclu(v1 As Integer,v2 As Integer) As Integer
ouexclu=(v1) Xor (v2)
End Function
Public Function CarOuExclu(c1 As String,c2 As String) As String
If (c1="") Then ac1=0 Else ac1=Asc(c1)
If (c2="") Then ac2=0 Else ac2=Asc(c2)
If (ac1<> ac2) Then CarouExclu=Chr$(ac1 Xor ac2) Else CarOuExclu=""
End Function
Public Function ChaineOuExclu(origine As String,masque As String) As String
ChaineOuExclu=""
masque2=masque
If Len(masque)<Len(origine) Then
For i=(Len(masque)) To Len(origine)
masque2=masque2+Mid$(masque,1+(i Mod (Len(masque)) ),1)
Next
End If
For i=1 To Len(origine)
resultat=Chr$(Asc(Mid$(origine,i,1) ) Xor Asc(Mid$(masque2,i,1)))
ChaineOuExclu=ChaineOuExclu + resultat
Next
End Function
© 2003 Scientillula.net