VB.Net Fonction Format en .Net [Résolu]

Signaler
Messages postés
532
Date d'inscription
lundi 5 juin 2006
Statut
Membre
Dernière intervention
6 octobre 2012
-
Messages postés
532
Date d'inscription
lundi 5 juin 2006
Statut
Membre
Dernière intervention
6 octobre 2012
-
Bonjour


J'ai un problème avec la fonction Format.


J'utilisais cette ligne de code en VB6 et tout était OK


Si textbox.Text = 36275127




Dim Variable As String
Variable = Format$(textbox, "@@_@@@_@@@")


Variable = 36_275_127


en .Net si je ne mets pas de .text à textbox ca fonctionne pas et si je fais un truc du genre


Dim Variable As String
Variable = Format$(textbox.Text, "@@_@@@_@@@")


Variable = @@_@@@_@@@


Où est mon erreur


merci de votre aide

6 réponses

Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
33
Reprenons donc :

Vives les spécificités du formatage de chaines de caractères.

Soit donc tu utilise la méthode Format de la classe String, dans ce cas pour formater ton texte qui représente un nombre, il faut d'abords le reconvertir en nombre (à condition que ton texte soit bien interprétable comme un nombre) :

    variable = String.Format("{0:#_###_###}", CType(TextBox1.Text, Long))

Soit tu le traite comme une chaine de caractère. Dans ce cas, peut importe ce qu'il y a dans le texte, puisqu'il va falloir passer caractère par caractère et chaque groupe de 3 caractères rajouter un _.

S'il y a une autre solution plus éléguante, elle ne me vient pas sur le moment

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
33
Format$ est un ancêtre venant de VB6 et ne devrait plus etre utiliser en .Net en dehors d'un code issu de l'assistant du conversion de code VB6.

En .Net, il faut utiliser les méthodes de la classe String et notamment la méthode Format :

Variable = String.Format("#_###_###",textbox.text)
 
---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php
Messages postés
539
Date d'inscription
vendredi 6 juin 2003
Statut
Membre
Dernière intervention
14 juillet 2010

Salut,

tu as essayer un truc de ce genre: Format(36275127, "##_###_###")

@+
youpi :)
Messages postés
539
Date d'inscription
vendredi 6 juin 2003
Statut
Membre
Dernière intervention
14 juillet 2010

oups casy a été plus rapide que moi, j'étais entrein d'ecire le post.

@+
youpi :)
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
33
Non mais ma réponse n'est pas complete et fausse.

Elle a été valider trop vite par une appli qui tourne en tache de fond et qui m'a planté la bécane

La bonne réponse arrive sous peu

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php
Messages postés
532
Date d'inscription
lundi 5 juin 2006
Statut
Membre
Dernière intervention
6 octobre 2012
1
merci mille fois