ATOUTFOX
COMMUNAUTÉ FRANCOPHONE DES PROFESSIONNELS FOXPRO
Visual FoxPro : le développement durable

La fonction MOD (Modulo) dans foxpro   



L'auteur

Mike Gagnon
Canada Canada
Membre Simple
# 0000000025
enregistré le 14/10/2004

Gagnon Mike
Pointe Cla H9R 3K8
de la société Carver Technologies Inc.
Fiche personnelle


Note des membres
pas de note

Contributions > 20 - Trucs et Astuces

La fonction MOD (Modulo) dans foxpro
# 0000000795
ajouté le 15/04/2011 12:46:06 et modifié le 18/04/2011
consulté 8817 fois
Niveau initié

Version(s) Foxpro :
VFP 9.0
VFP 8.0
VFP 7.0
VFP 6.0
VFP 5.0
VFP 3.0

Description

La fonction MOD() ou % sont identiques
dans foxpro. Récemment on m'a demandé de décrypter un chiffre binaire qui
provient de la lecture d'une carte d'employé que l'on passe dans un horodateur.
La formule était qu'une fois que l'on traduit ce chiffre de décimal à binaire
et qu'on prend les 16 derniers chiffres binaire et on les retraduit en décimal,
on obtient le vrai numéro de la carte.

J'ai passé quelque heures à écrire une
fonction qui prenne un chiffre décimal en binaire, prend les 16 derniers caractères
et les ramener en décimal. Un programme qui avais 178 ligne de code.

Mais Foxpro avait déjà pensé à cette situation avec une seule fonction (ou deux), il s'agissait juste de comprendre comment l'utiliser.

Par example si le chiffre qui provient de l'horodateur est 08418894, ma fonction retournais bien 30286, mais en passant par 178 lignes de code. Mais Foxpro le fait en un ligne de code,



Code source :
MOD(08418894,2**16)
Ou
? 08418894 % 65536
Commentaires
le 15/04/2011, Jean à Grenoble a écrit :
Tu m'aurais demandé, je t'aurais répondu :

? BITAND(08418894, 0x0000FFFF)

;-) :-)

Jean à Grenoble

le 18/04/2011, JpG a écrit :
Merci Mike de nous rappeler l'intérêt de certaines fonctions ...
le 07/05/2011, eddymaue a écrit :
Grosse journée Mike pour un si petit calcul ;)

j'ai déjà passé une nuit blanche sur une virgule que je prenais pour un point(dot) à l'époque des portables ou le point(dot) ressemblait à une virgule.



www.atoutfox.org - Site de la Communauté Francophone des Professionnels FoxPro - v3.4.0 - © 2004-2024.
Cette page est générée par un composant COM+ développé en Visual FoxPro 9.0-SP2-HF3