OVH Cloud OVH Cloud

Fonction Len défaillante

3 réponses
Avatar
Mario Limoges
Bonjour à tous

Je ne peu m'expliquer le résultat éronné que obtiens de la fonction "Len".
En effet j'ai une variable qui contient un nombre aléatoire

MaVariable = 1234 (MaVariable est de type integer)

et quand dans le code je veut passer la longueur de la chaîne contenu dans
cette variable de par la fonction Len obtiens toujours : Len(Mavariable) = 2
et non 4

Je suis confus !

Quelqu'un a une idée

Merci à l'avance

3 réponses

Avatar
Eric
Bonjour Mario,

La fonction Len() retourne le nb de caractères d'une variable de type
chaîne de caractères *OU* le nb d'octets nécessaire au stockage d'une
variable numérique.

Un Integer nécessite 2 octets pour être stocké donc dans ton cas :
Len(MaVariable) te retourne 2

Si tu veux avoir le nb de caractères de MaVariable, il faut d'abord
convertir en String.

MaVariable34
Debug.Print Len(MaVariable) ----------> 2
Debug.Print Len(CStr(MaVariable)) ----> 4


--
A+
Eric
Un petit tour ici : http://users.skynet.be/mpfa/
Accès aux archives :
http://groups.google.fr/group/microsoft.public.fr.access?hl=fr

Bonjour à tous

Je ne peu m'expliquer le résultat éronné que obtiens de la fonction "Len".
En effet j'ai une variable qui contient un nombre aléatoire

MaVariable = 1234 (MaVariable est de type integer)

et quand dans le code je veut passer la longueur de la chaîne contenu dans
cette variable de par la fonction Len obtiens toujours : Len(Mavariable) = 2
et non 4

Je suis confus !

Quelqu'un a une idée

Merci à l'avance




Avatar
Eric
.../...
Si MaVariable est dans l'intervalle { -32 768 ; 0}
Len(CStr(MaVariable)) renverra 1 caractère de plus en raison du signe.
--
A+
Eric
Un petit tour ici : http://users.skynet.be/mpfa/
Accès aux archives :
http://groups.google.fr/group/microsoft.public.fr.access?hl=fr

Bonjour Mario,

La fonction Len() retourne le nb de caractères d'une variable de type
chaîne de caractères *OU* le nb d'octets nécessaire au stockage d'une
variable numérique.

Un Integer nécessite 2 octets pour être stocké donc dans ton cas :
Len(MaVariable) te retourne 2

Si tu veux avoir le nb de caractères de MaVariable, il faut d'abord
convertir en String.

MaVariable34
Debug.Print Len(MaVariable) ----------> 2
Debug.Print Len(CStr(MaVariable)) ----> 4


--
A+
Eric
Un petit tour ici : http://users.skynet.be/mpfa/
Accès aux archives :
http://groups.google.fr/group/microsoft.public.fr.access?hl=fr


Bonjour à tous

Je ne peu m'expliquer le résultat éronné que obtiens de la fonction
"Len". En effet j'ai une variable qui contient un nombre aléatoire

MaVariable = 1234 (MaVariable est de type integer)

et quand dans le code je veut passer la longueur de la chaîne contenu
dans cette variable de par la fonction Len obtiens toujours :
Len(Mavariable) = 2 et non 4

Je suis confus !

Quelqu'un a une idée

Merci à l'avance





Avatar
Mario Limoges
Merci Eric, bien apprécié !
"Eric" a écrit dans le message de news:

.../...
Si MaVariable est dans l'intervalle { -32 768 ; 0}
Len(CStr(MaVariable)) renverra 1 caractère de plus en raison du signe.
--
A+
Eric
Un petit tour ici : http://users.skynet.be/mpfa/
Accès aux archives :
http://groups.google.fr/group/microsoft.public.fr.access?hl=fr

Bonjour Mario,

La fonction Len() retourne le nb de caractères d'une variable de type
chaîne de caractères *OU* le nb d'octets nécessaire au stockage d'une
variable numérique.

Un Integer nécessite 2 octets pour être stocké donc dans ton cas :
Len(MaVariable) te retourne 2

Si tu veux avoir le nb de caractères de MaVariable, il faut d'abord
convertir en String.

MaVariable34
Debug.Print Len(MaVariable) ----------> 2
Debug.Print Len(CStr(MaVariable)) ----> 4


--
A+
Eric
Un petit tour ici : http://users.skynet.be/mpfa/
Accès aux archives :
http://groups.google.fr/group/microsoft.public.fr.access?hl=fr


Bonjour à tous

Je ne peu m'expliquer le résultat éronné que obtiens de la fonction
"Len". En effet j'ai une variable qui contient un nombre aléatoire

MaVariable = 1234 (MaVariable est de type integer)

et quand dans le code je veut passer la longueur de la chaîne contenu
dans cette variable de par la fonction Len obtiens toujours :
Len(Mavariable) = 2 et non 4

Je suis confus !

Quelqu'un a une idée

Merci à l'avance