OVH Cloud OVH Cloud

Problème conversion variables...

6 réponses
Avatar
X
Bonjour,

Je ne comprends pas pourquoi je n'arrive pas à convertir une saisie
texte (numérique), en différents type de variables.

- J'utilise une optionButton option3(6) pour choisir le type de variable.
- Je saisis dans un texte (text6), la valeur à convertir.
- A laide de 6 variable de type prévue par rapport au choix de
l'optionButton, je charge le texte de saisie dans variable appropriée (comme
sus-cité), ceci à l'aide d'une fonction de conversion, mais hélas, si ce
n'est pas conforme ça sort bien en erreur, mais si c'est conforme, ça
affiche 0, la variable n'est pas chargée, le texte n'est pas convertit !!!

Par exemple, si je fais
dim x as byte
text1 = "123" (mais en saisie dans la TextBox)
x = cbyte(text1)
x = 0 ??????????????????

Voyez-vous où est l'erreur ???

Voici le lien ou télécharger la source :o)

http://joe75018.free.fr/variables.zip

Merci beaucoup, au revoir et à bientôt :o)
------
Site logiciels
http://irolog.free.fr
Mail
http://irolog.free.fr/ecrire/index.htm
Site perso
http://irolog.free.fr/joe/index.htm
Pincipe d'utilisation des news Groups
http://support.microsoft.com/directory/worldwide/fr/newsgroup/regles.htm
------------------------------------------------------------------------------------

6 réponses

Avatar
Picalausa François
"X" <x> a écrit dans le message de news:

Bonjour,

Je ne comprends pas pourquoi je n'arrive pas à convertir une saisie
texte (numérique), en différents type de variables.

Voyez-vous où est l'erreur ???



Hello,

L'erreur vient de
bcd1 = bcd4 = CLng(Text6)
qui est naturellement évalué
bcd1 = (bcd4 = CLng(Text6))

On a donc bien bcd1 = True pour Text6.Text = 0 (= -1 pour les types signés,
max pour les types non signés, en l'occurence 255 pour un byte)
puisqu'il n'y a pas de différentiation entre l'opérateur de comparaison (=)
et d'assignation (=)
Mais la grande question est pourquoi une telle tentative de double
assignation (si j'ai bien compris), si la variable bcd1 n'est *pas*
réutilisée?

Il y a un autre problème de propriété par défaut qu'il ne faut *jamais*
utiliser, parce que cela peut mener à d'énormes confusions! Text6 =>
Text6.Text

--
Picalausa François
Avatar
X
Merci, mais je n'y comprend rien!!!

Je ne veux pas convertir une variable numérique dans une autre variable
numérique, mais un texte (de valeur numérique) dans une variable numérique.

Tu me dis "L'erreur vient de bcd1 = bcd4 = CLng(Text6)"
Je n'ai pas souvenir d'avoir écrit un truc pareil???
Je ne sais pas si VB avale 2 "=" "=" dans la même ligne...
Ton exemple évidemment-> on rentre un Double Word dans un byte, moi je ne
fais pas ça!
Et encore, si on rentre un double word dans un byte , ben c'est tronqué
normalement, mais ça marche, non ?
Soit:

-1-
dim x as byte
text6.text = ... saisie 123
x = cbyte(text6.text)
x= 0

Que faut-il que je fasse pour que j'ai 123 (exemple), dans ma variable x ???

-------------------

-2-
Une variable est-elle signée ou non signée par défaut, et comment on la
signe, est-ce par exemple:
dim x as byte signed ?????
dim x as byte unsigned ?????

Merci :o)

---------------


"Picalausa François" a écrit dans le message de news:
u$Jc6%
"X" <x> a écrit dans le message de news:

Bonjour,

Je ne comprends pas pourquoi je n'arrive pas à convertir une saisie
texte (numérique), en différents type de variables.

Voyez-vous où est l'erreur ???



Hello,

L'erreur vient de
bcd1 = bcd4 = CLng(Text6)
qui est naturellement évalué
bcd1 = (bcd4 = CLng(Text6))

On a donc bien bcd1 = True pour Text6.Text = 0 (= -1 pour les types
signés, max pour les types non signés, en l'occurence 255 pour un byte)
puisqu'il n'y a pas de différentiation entre l'opérateur de comparaison
(=) et d'assignation (=)
Mais la grande question est pourquoi une telle tentative de double
assignation (si j'ai bien compris), si la variable bcd1 n'est *pas*
réutilisée?

Il y a un autre problème de propriété par défaut qu'il ne faut *jamais*
utiliser, parce que cela peut mener à d'énormes confusions! Text6 =>
Text6.Text

--
Picalausa François



Avatar
X
OH PARDON, j'ai écris un truc pareil, je n'avais même pas vu,
erreur, évidemment que ça ne marche pas, je revois ça et je te tiens au
courant, mes excuses (inattention)
La question reste pour signed et unsigned ???

------------

"Picalausa François" a écrit dans le message de news:
u$Jc6%
"X" <x> a écrit dans le message de news:

Bonjour,

Je ne comprends pas pourquoi je n'arrive pas à convertir une saisie
texte (numérique), en différents type de variables.

Voyez-vous où est l'erreur ???



Hello,

L'erreur vient de
bcd1 = bcd4 = CLng(Text6)
qui est naturellement évalué
bcd1 = (bcd4 = CLng(Text6))

On a donc bien bcd1 = True pour Text6.Text = 0 (= -1 pour les types
signés, max pour les types non signés, en l'occurence 255 pour un byte)
puisqu'il n'y a pas de différentiation entre l'opérateur de comparaison
(=) et d'assignation (=)
Mais la grande question est pourquoi une telle tentative de double
assignation (si j'ai bien compris), si la variable bcd1 n'est *pas*
réutilisée?

Il y a un autre problème de propriété par défaut qu'il ne faut *jamais*
utiliser, parce que cela peut mener à d'énormes confusions! Text6 =>
Text6.Text

--
Picalausa François



Avatar
X
Bon, ça marche, je devais avoir la tête en l'air pour écrire du code
pareil! Puis j'ai copié-collé ma bêtise... Merci :o)

Sinon, j'ai toujours le problème signed de la variable byte (avec les
autres les négatifs passent), mais pas avec le byte, par exemple
dim x as byte
x= -120
refusé!

Et signed, unisgned, il ne semble pas connaître, je vais voir, je crois
qu'il y a un type de variable qui fait que du signé, bon, si tu as une idée,
elle sera toujours bonne :o)

------------

"Picalausa François" a écrit dans le message de news:
u$Jc6%
"X" <x> a écrit dans le message de news:

Bonjour,

Je ne comprends pas pourquoi je n'arrive pas à convertir une saisie
texte (numérique), en différents type de variables.

Voyez-vous où est l'erreur ???



Hello,

L'erreur vient de
bcd1 = bcd4 = CLng(Text6)
qui est naturellement évalué
bcd1 = (bcd4 = CLng(Text6))

On a donc bien bcd1 = True pour Text6.Text = 0 (= -1 pour les types
signés, max pour les types non signés, en l'occurence 255 pour un byte)
puisqu'il n'y a pas de différentiation entre l'opérateur de comparaison
(=) et d'assignation (=)
Mais la grande question est pourquoi une telle tentative de double
assignation (si j'ai bien compris), si la variable bcd1 n'est *pas*
réutilisée?

Il y a un autre problème de propriété par défaut qu'il ne faut *jamais*
utiliser, parce que cela peut mener à d'énormes confusions! Text6 =>
Text6.Text

--
Picalausa François



Avatar
Picalausa François
"X" <x> a écrit dans le message de news:

-2-
Une variable est-elle signée ou non signée par défaut, et comment on la
signe, est-ce par exemple:
dim x as byte signed ?????
dim x as byte unsigned ?????




Hello,

Byte : unsigned
Integer, long, currency, single, double : signed
Tout cela est repris dans la documentation fournie avec VB (ou MSDN),
accessible au travers de la touche F1 lorsque la sélection de code porte sur
n'importe lequel des typtes de données, ainsi que dans la MSDN Online :
http://msdn.microsoft.com/library/en-us/vbenlr98/html/vagrpDataType.asp

VB ne comprend les types de données que tels qu'ils sont décrits, sans
possibilité de travailler à sa guise avec des valeurs signées ou non. Pour
effectuer les changements, il faudra écrire le code sois-même. Un exemple
est disponible ici:
http://support.microsoft.com/kb/q189323/

--
Picalausa François
Avatar
X
Merci :o)
"Picalausa François" a écrit dans le message de news:

"X" <x> a écrit dans le message de news:

-2-
Une variable est-elle signée ou non signée par défaut, et comment on la
signe, est-ce par exemple:
dim x as byte signed ?????
dim x as byte unsigned ?????




Hello,

Byte : unsigned
Integer, long, currency, single, double : signed
Tout cela est repris dans la documentation fournie avec VB (ou MSDN),
accessible au travers de la touche F1 lorsque la sélection de code porte
sur n'importe lequel des typtes de données, ainsi que dans la MSDN Online
:
http://msdn.microsoft.com/library/en-us/vbenlr98/html/vagrpDataType.asp

VB ne comprend les types de données que tels qu'ils sont décrits, sans
possibilité de travailler à sa guise avec des valeurs signées ou non. Pour
effectuer les changements, il faudra écrire le code sois-même. Un exemple
est disponible ici:
http://support.microsoft.com/kb/q189323/

--
Picalausa François