PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2025 → OUExclusif sur de l'hexadecimal
OUExclusif sur de l'hexadecimal
Débuté par PBATTU, 03 déc. 2004 16:14 - 2 réponses
Posté le 03 décembre 2004 - 16:14
Bonjour
j'ai à faire un OUExclusif sur un nombre en hexadecimal dans un programme, mais l'hexa sous windev est connu que sous le format chaine et le OUExclusifBinaire ne prend en compte que le numérique. Comment peut-on faire ?
Ceci est pour envoyer une trame contenant un LRC (utilisation du OUExclusif de toutes les valeurs hexa de la trame) sur le port série.
On ne peut pas prendre la valeur ASCII du 1er caractère et le Xoré avec la valeur ASCII du 2ème biensur
Posté le 03 décembre 2004 - 16:58
Tu peux utiliser le code suivant:

MaChaineHexa est une chaine
MaValeur est un entier
MonResultat est un entier
MonResultatHexa est une chaine

MaValeur = Val (MaChaineHexa, "x")
Monresultat = OuExclusifBinaire (MaValeur, AutreValeur)
MonResultatHexa = NumériqueVersChaine (MonResultat, "X")
Posté le 05 décembre 2004 - 00:14
Voici ma procedure qui fonctionne


PROCEDURE CalculLRC(pData)
// pData est la chaine
lg est un entier //longueur de la chaine
i est un entier //index de boucle
OuEx est un entier sans signe sur 2 octets //resultat du ou exclusif
valeur est un entier sans signe sur 2 octets
resultat est un entier sans signe sur 1 octets

lg = Taille(pData)
OuEx = 0

QUAND EXCEPTION DANS
POUR i=1 A lg
valeur = Asc(pData[[i]])
OuEx = OuExclusifBinaire(OuEx,valeur)
FIN
resultat = ETBinaire(OuEx,0xff)

FAIRE
Beep
Erreur("Une erreur est intervenue lors du calcul LRC" ,...
" Notez l'opération que vous étiez en train de faire" ,...
" Notez le numéro les données suivantes : '"+pData+"'")
RENVOYER 0
FIN
RENVOYER resultat



"Pascal BATTU" <PBATTU@WANADOO.FR> a écrit dans le message de news:
41b06ae1@news.pcsoft.fr...

Bonjour
j'ai à faire un OUExclusif sur un nombre en hexadecimal dans un programme,

mais l'hexa sous windev est connu que sous le format chaine et le
OUExclusifBinaire ne prend en compte que le numérique. Comment peut-on faire
?
> Ceci est pour envoyer une trame contenant un LRC (utilisation du
OUExclusif de toutes les valeurs hexa de la trame) sur le port série.
On ne peut pas prendre la valeur ASCII du 1er caractère et le Xoré avec la

valeur ASCII du 2ème biensur
>