PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV Mobile 2024 → Conversion chaine en entier sur 8 octets (val ne fonctionne pas)
Conversion chaine en entier sur 8 octets (val ne fonctionne pas)
Débuté par Guillaume PETIT, 13 nov. 2018 11:44 - 7 réponses
Membre enregistré
6 messages
Posté le 13 novembre 2018 - 11:44
Bonjour

J'ai un problème simple que je n'arrive pas à résoudre :

Je veux convertir une chaîne en entier sur 8 octets.

Pour cela j'utilise la fonction val.

Or si ma chaine de caractères fait 18 caractères, la fonction val ne me renvoie pas correctement les derniers chiffres.

Exemple :

lo_chaine est une chaine = "282037926664077313"
lo_nb est un entier sur 8 octets

lo_nb=val(lo_chaine)

info(lo_nb) me renvoie "282037926664077000"

Comment faire pour obtenir le bon entier depuis ma chaine ?

D'avance merci.
Membre enregistré
1 603 messages
Popularité : +64 (70 votes)
Posté le 13 novembre 2018 - 13:30
Bonjour,

Pas de problème avec une ancienne version de Windev:

o_chaine est une chaîne = "282037926664077313"
lo_nb est un entier sans signe sur 8 octets

lo_nb=Val(o_chaine)
CH est une chaîne = NumériqueVersChaîne(lo_nb)
SI CH = o_chaine ALORS
Info("Ok")
SINON
Info("pas Ok")
FIN
retourne Ok

--
Cordialement
François
Membre enregistré
1 603 messages
Popularité : +64 (70 votes)
Posté le 13 novembre 2018 - 13:32
Ne pas tenir compte de cet avis j'ai pas vu que c'était Windev mobile. Sorry

--
Cordialement
François
Posté le 13 novembre 2018 - 14:37
"François SCHAAL" avait soumis l'idée :
> Ne pas tenir compte de cet avis j'ai pas vu que c'était Windev mobile. Sorry

non votre avios est bon en mobile (android et windows) seul un Entier
sans signe sur 8 octets est pris en charge

--
Cordialement JeAn-PhI
Membre enregistré
6 messages
Posté le 14 novembre 2018 - 10:56
Bonjour,

Merci pour vos réponses.

Précisions importantes :

- Je suis en Windev Mobile 22 sur téléphone Android 7.

- Cela fonctionne lorsque je teste avec le simulateur de téléphone mais pas sur le mobile branché en usb.

Cordialement
Posté le 14 novembre 2018 - 17:56
Guillaume PETIT a pensé très fort :
Bonjour,

Merci pour vos réponses.

Précisions importantes :

- Je suis en Windev Mobile 22 sur téléphone Android 7.

- Cela fonctionne lorsque je teste avec le simulateur de téléphone mais pas
sur le mobile branché en usb.

Cordialement


bonjour,

avez-vous déclaré votre variable comme suit :

lo_nb est un entier sans signe sur 8 octets

et non

lo_nb est un entier sur 8 octets

--
Cordialement JeAn-PhI
Membre enregistré
1 603 messages
Popularité : +64 (70 votes)
Posté le 15 novembre 2018 - 08:06
Bonjour,

Si la solution de Jean-Phi ne fonctionne pas, prendre une partie gauche du chiffre convertie en numérique par val à multiplier par une puissance de 10 et ajouter la partie droite du chiffre après un val.

--
Cordialement
François
Membre enregistré
1 603 messages
Popularité : +64 (70 votes)
Posté le 15 novembre 2018 - 11:36
Il faudrait aussi tester une chaine ANSI : o_chaine est une chaîne ANSI = "282037926664077313"
Le problème vient peut-être du codage UNICODE

--
Cordialement
François