Instruction Format(Chaine,Arg) sour VB9

Résolu
radsie Messages postés 37 Date d'inscription mardi 24 août 2004 Statut Membre Dernière intervention 2 décembre 2010 - 15 juin 2010 à 22:09
radsie Messages postés 37 Date d'inscription mardi 24 août 2004 Statut Membre Dernière intervention 2 décembre 2010 - 17 juin 2010 à 20:48
Bonjour à tous

Voila, j'ai besoin de convertir un nombre de 0 à 255 en une chaine de caractère de "000" à "255"
avec tjrs 3 caractères de longueur !

Autant sur VB6 ca marchait bien avec l'instruction :
resultatString=format(Chainecompteur,"000")
mais avec VB9 rien a faire, l'instruction me retourne "0000" qq soit la valeur de Chainecompteur

Si qq pouvez me donner un tuyau, ce serait super cool ! lol

Merci d'avance

Steph

7 réponses

cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
15 juin 2010 à 22:34
2 possibilités
- directement par la variable : TaVariable.ToString("000")
- En passant pas la classe String : String.Format("{0:000}",TaVariable)


[i][b]---- Sevyc64 (alias Casy) ----
[hr]# LE PARTAGE EST NOTRE FORCE #/b/i
3
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
16 juin 2010 à 21:21
Pour Hex, je te dis que je ne sais plus alors que je te donne la solution 5 lignes au dessus

Il suffit d'utiliser .ToString avec le bon format

Par exemple :
(10).ToString("x") va donner "a"
(10).ToString("x4").ToUpper va donner "000A"


[i][b]---- Sevyc64 (alias Casy) ----
[hr]# LE PARTAGE EST NOTRE FORCE #/b/i
3
radsie Messages postés 37 Date d'inscription mardi 24 août 2004 Statut Membre Dernière intervention 2 décembre 2010
15 juin 2010 à 22:41
Super
Mille merci casy

J'ai debuté avec VB3 puis VB4 puis VB5 et ensuite VB6 et je viens de passer de vb6 à VB9 ... ouaou ça fait un sacré changement !!!

Ce site est génial !!!

Chalut Tizote lol

Steph(59)
0
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
15 juin 2010 à 22:50
Alors un conseil. Pour le moment continu comme tu fais actuellement (j'imagine que tu code encore à la mode VB6)

Dans quelques temps, quand tu seras plus à l'aise avec la nouvelle philosophie .Net, pense à décocher systématiquement l'assembly Microsoft.VisualBasic dans les propriétés de tes projets.

Tu vas voir que ça va certainement te générer beaucoup d'erreurs au début, mais ça t'obligeras à faire du code vrai .Net et à oublier les instructions de VB6


[i][b]---- Sevyc64 (alias Casy) ----
[hr]# LE PARTAGE EST NOTRE FORCE #/b/i
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
radsie Messages postés 37 Date d'inscription mardi 24 août 2004 Statut Membre Dernière intervention 2 décembre 2010
16 juin 2010 à 18:53
Cool !!
Alors la je me rends bien compte que je parle pas bien le .NET !!! ouiouillouile lol

Par contre, tu n'aurais pas une astuce pour trouver rapidement la corespondance
des instructions entre VB6 et VB9 ?

Exemple :

Le fait de décocher l'assembly Microsoft.VisualBasic, il me genere evidement plein d'erreur du genre :
- Le nom Trim n'est pas déclaré
- Le nom Str n'est pas déclaré
- Le nom Val n'est pas déclaré
- Le nom Hex n'est pas déclaré
.....

Je sais que ve vais dérouiller pour réapprendre les instructions à la mode .NET
mais s'il y avait qq chose pour me faire gagner du temps ....

Merci encore

Steph(59)
0
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
16 juin 2010 à 21:12
Comme je te disais .Net est structuré et hiérarchisé par le fait même que tout est objet.

Ainsi tout ce qui touche aux chaines de caractères va se trouver dans comme méthodes de la classe string.

Trim(TaChaine) devient TaChaine.Trim
Left,Right et Mid n'existe plus mais tu as TaChaine.SubString qui remplace Mid et via les divers paramètres aussi Left et Right

Str retournait un nombre sous forme de chaine, maintenant c'est sur ta variable numérique que tu as une méthode pour la transformer en chaine :
Str(TonNombre) devient TonNombre.ToString avec accessoirement un format que tu peux passer en paramètre

Pour Val, pas d'équivalent direct, mais les fonctions CInt, CDbl, ... existe toujours.

Pour Hex, je ne sais plus comment on fait mais c'est aussi possible.

Il y a effectivement certaines équivalences difficiles à trouver.

vbCRLF est à remplacer par Environment.NewLine qui renvoi désormais non pas systématiquement CRLF mais le caractère de saut de ligne par défaut du système (qui est CRLF sous Windows )


ATTENTION aussi aux formats de données des nombres notamment qui ont changés entre VB6 et .Net surtout si tu dois utiliser les API de Windows (avec des instructions Declare)
Ainsi un Short ou Integer en VB6 est équivalent à un Short (Int16) en .Net
Un Long en VB6 devient un Integer (Int32) en .Net
Le long en .Net est un Int64, pas d'équivalent en VB6 si mes souvenirs sont bons.

Cela est très important pour les API de Windows car les instructions Declare sont généralement donné pour VB6. En .Net il faudra donc remplacer tous les Long par des Integer par exemple dans ces instructions.


[i][b]---- Sevyc64 (alias Casy) ----
[hr]# LE PARTAGE EST NOTRE FORCE #/b/i
0
radsie Messages postés 37 Date d'inscription mardi 24 août 2004 Statut Membre Dernière intervention 2 décembre 2010
17 juin 2010 à 20:48
Merci Casy

Ca y est c'est partit .NET ne me resistera pas ...

A bientôt

Steph(59)
0
Rejoignez-nous