PC SOFT

GRUPOS DE DISCUSSÃO PROFISSIONAL
WINDEVWEBDEV e WINDEV Mobile

Inicio → 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)
Iniciado por Guillaume PETIT, nov., 13 2018 11:44 AM - 7 respostas
Membro registado
6 mensagems
Publicado em novembro, 13 2018 - 11:44 AM
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.
Membro registado
1.603 mensagems
Popularité : +64 (70 votes)
Publicado em novembro, 13 2018 - 1:30 PM
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
Membro registado
1.603 mensagems
Popularité : +64 (70 votes)
Publicado em novembro, 13 2018 - 1:32 PM
Ne pas tenir compte de cet avis j'ai pas vu que c'était Windev mobile. Sorry

--
Cordialement
François
Publicado em novembro, 13 2018 - 2:37 PM
"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
Membro registado
6 mensagems
Publicado em novembro, 14 2018 - 10:56 AM
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
Publicado em novembro, 14 2018 - 5:56 PM
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
Membro registado
1.603 mensagems
Popularité : +64 (70 votes)
Publicado em novembro, 15 2018 - 8:06 AM
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
Membro registado
1.603 mensagems
Popularité : +64 (70 votes)
Publicado em novembro, 15 2018 - 11:36 AM
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