tu écrit en python:
[windev]byteFour = byteFour+0x80 if self.SWP2 == 1 else byteFour[/windev]
puis en windev:
[windev]SI Tea5767.SWP2 ALORS ByteFour += 0x80[/windev]
je suppose donc que self est Tea5767.
dans ce cas pourquoi tu ne fait pas:
[windev]
SI Tea5767.SWP2 = 1 ALORS
byteFour = byteFour+0x80
SINON
ByteFour = ByteFour
FIN
[/windev]
si le résultat est le même tu t'amuseras ensuite a mettre sur un seule ligne en windev.
(regarde comment on fait avec le "?").
l'aide n'est pas toujours claire.
-
Bonjour tout le monde ! Veillez consulter la Politique de forum pour comprendre nos règles, Merci a vous !Rejeter la notice
Conversion Code Python To WinDev22
Discussion dans 'Résolution problème & conseils' créé par Razorte, Mai 17, 2018.
Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!
Cette suite de if correspond en windev à la syntaxe suivante :
[windev]
résultat = (condition) ? valeur si condition est vrai SINON valeur si condition est fausse.
[/windev]
On traduirait ta première ligne en :
[windev]
ByteFour = Tea5767.SWP2 ? ByteFour + 0x80 Sinon ByteFour
[/windev]
Bon, l'écriture est assez particulière. A quoi bon retourner ByteFour si la condition est fausse ? Je pense que l'auteur voulait faire en sorte que l'écriture tienne sur une seule ligne.
Vu le code, je te conseillerai aussi d'utiliser l'opérateur OuBinaire plutôt que le +=, ce qui laisse bien voir l'intention du code, c'est à dire activer ou désactiver des bits de la variable ByteFour. Pour savoir si une des valeurs est présente, tu peux ensuite utiliser EtBinaire. Par exemple :
[windev]
Si EtBinaire(ByteFour, 0x80) = 0x80 ALORS
....
FIN
[/windev]
Enfin, je te conseille aussi de remplacer les 0x80 et autres valeurs par des constantes, qui expriment elles aussi l'intention du code et qui évitent des erreurs de saisie.