tof008
Messages postés695Date d'inscriptionjeudi 5 mai 2005StatutMembreDernière intervention 5 janvier 2010
-
5 déc. 2006 à 10:44
tof008
Messages postés695Date d'inscriptionjeudi 5 mai 2005StatutMembreDernière intervention 5 janvier 2010
-
5 déc. 2006 à 13:36
Bonjour à tous!
Je souhaite créer une fonction qui me retourne le type d'une variable... Aprés quelques recherches je suis tombé sur la fonction varType. J'ai donc tenté de m"en servir et j'ai fait ceci :
Select Case varType(Text1.Text)
Case vbBoolean: var = "boolean"
Case vbInteger: var = "Integer"
Case vbString: var = "String"
Case vbDate: var = "Date"
Case vbDouble: var = "Double"
Case vbObject: var = "Object"
Case vbSingle: var = "Single"
Case vbVariant: var = "Variant"
End Select
MsgBox var
Seulement; quelque soit la valeur entrée dans ma TextBox, le type renvoyé est String! Quelqu'un pourrait il me mettre sur la bonne voie ou m'indiquer mon erreur?
Merci d'avance!
(Si la réponse vous convient, appuyez sur réponse acceptée...).
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 5 déc. 2006 à 11:53
"Je comprends bien ce que tu me dis, et c'est d'ailleurs assez logique... Mais comment puis je récupérer la valeur de cette TextBox en gardant son type?"
Tu ne peux tout simplement pas !
Sauf peut-être en alourdissant considérablement ton application, en faisant "dérouler" toutes tes variables jusqu'à en trouver celle sui correspond ou en construisant au préalable quelquechose pour y parvenir... Tout celà est quelque peu insensé, et ce d'autant que si tu es capable de mettre dans une textbox une chaîne de caractères "toto", c'est que tu connais l'existence de la vbariable nommée toto !!!
PS : je n'ai pas voulu "relever" tes "cases" dans ton 1er messages, car j'ai estimé la chose de toutes façons inutile... mais regarde (pour améliorer tes connaissances uniquement) à quoi sert donc la fonction TypeName et tu verras que tu n'avais pas besoin de passer par un tel chemin ...... ). Celà n'a toutefois rien à voir avec ton problème....
"Le type d'une variable, hum, et ca va te servir à quoi au juste ???"
En fait je veux envoyer des méthodes via XML à un Web Service et pour ca je dois compter les attributs d'une fonction et trouver leur type. Par contre, tu peux m'expliquer un peu ce que tu veux dire par 'passe par des objets' si ca ne te dérange pas? Est ce que je dois passer toutes mes variables en objets et si oui et ce que je peux retrouver leur type par la suite?
jmfmarques Je comprends bien ce que tu me dis, et c'est d'ailleurs assez logique... Mais comment puis je récupérer la valeur de cette TextBox en gardant son type?
Merci pour votre aide!
(Si la réponse vous convient, appuyez sur réponse acceptée...).
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 5 déc. 2006 à 11:42
"Je comprends bien ce que tu me dis, et c'est d'ailleurs assez logique... Mais comment puis je récupérer la valeur de cette TextBox en gardant son type?"
Tu ne peux tout simplement pas !
Sauf peut-être en alourdissant considérablement ton application, en faisant "dérouler" toutes tes variables jusqu'à en trouver celle sui correspond ou en construisant au préalable quelquechose pour y parvenir... Tout celà est quelque peu insensé, et ce d'autant que si tu es capable de mettre dans une textbox une chaîne de caractères "toto", c'est que tu connais l'existence de la vbariable nommée toto !!!
tof008
Messages postés695Date d'inscriptionjeudi 5 mai 2005StatutMembreDernière intervention 5 janvier 201033 5 déc. 2006 à 12:23
Merci pour l'elargissement de mes connaissances! J'ai regardé typeName et il est vrai que c'etait plus facile lol! Je vais donc essayer de trouver une autre solution, peut être en cherchant du coté du type variant.
"si tu es capable de mettre dans une textbox une chaîne de caractères "toto", c'est que tu connais l'existence de la vbariable nommée toto "
oui, mais ce n'est pas moi qui rentre la variable dans la textBox... puis je ne veux pas savoir si la variable existe, mais de quel type elle est... Je vais peut être faire un test en me servant des Chr() ca occupera mon apres midi!
Merci pour ton aide (même si tu as détruit mon idée grrr lol!) !!! Bonne journée!
(Si la réponse vous convient, appuyez sur réponse acceptée...).
cs_DARKSIDIOUS
Messages postés15814Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention 4 mars 2013130 5 déc. 2006 à 12:29
Tu as une solution en passant par une collection : si tu mets toutes tes variables dans une collection, alors tu peux accèder à une variable par son nom, c'est très lourd, ca va ralentir énormément ton prog, donc à utiliser avec parcimonie, et dans des cas très spéciaux !
Pas passage par objets, cela est pratique pour faire de la généricité (traîter de la même façon un double ou un integer par exemple), du "polymorphisme" à la sauce vb (faire un bon vieux select case avec des instance of sur un objet). Mais cela ne s'applique pas à ton cas.
tof008
Messages postés695Date d'inscriptionjeudi 5 mai 2005StatutMembreDernière intervention 5 janvier 201033 5 déc. 2006 à 13:36
Merci DARKSIDIOUS !
Mais en fait je vais tout passer en variant, je pense que ca sera plus facile. Pour compter les arguments je vais passer par des optional dans ma fonction!
Merci pour votre aide à tous les deux!
(Si la réponse vous convient, appuyez sur réponse acceptée...).