Msgbox problème d'affichage

[Résolu]
Signaler
Messages postés
184
Date d'inscription
mercredi 8 décembre 2004
Statut
Membre
Dernière intervention
1 septembre 2010
-
Messages postés
184
Date d'inscription
mercredi 8 décembre 2004
Statut
Membre
Dernière intervention
1 septembre 2010
-
Bonjour j'ai le code ci dessous et à l'affichage, je n'ai que la première ligne.

Quelqu'un saurait me dire pourquoi?

MsgBox "Utilisateur: " & NomUtilisateur & vbCrLf & _
"Nom de l'ordinateur: " & ComputerName & vbCrLf & _
"Adresse IP: " & LocalIPAddress & vbCrLf & _
"Adresse MAC de la carte réseau: " & GetMACAddress & vbCrLf & _
"Ports et réseaux ouverts: " & GetPorts & vbCrLf & _
"Liaison réseau: " & msg & vbCrLf & _
"Nombre de couleurs :" & NbCouleurs & vbCrLf & _
"Touches activées: " & NumL & vbCrLf & CapsL & vbCrLf & _
"Carte son: " & Sound & vbCrLf & _
"Lecteurs de CD: " & Lect, vbInformation, "Récapitulatif Informations Système"

Merci bcp :)

18 réponses

Messages postés
3140
Date d'inscription
vendredi 14 mai 2004
Statut
Membre
Dernière intervention
11 mars 2019
31
il y a différentes méthodes avec les fonctions de manipulation de chaîne, Instr pour trouver le premier chr$(0) et Left$ pour ne prendre que la partie gauche ou alors avec Replace, remplacer les zéros par des espaces et ensuite les supprimer avec Rtrim$.
une autre méthode consiste à mettre la zone dans un TexBox ou un Label et on la récupère sans les zéros.

exemples:

NomUtilisateur = Replace(NomUtilisateur, Chr$(0), " ")
NomUtilisateur = RTrim$(NomUtilisateur)

Dim x As Integer
x = InStr(LocalIPAddress, Chr$(0))
LocalIPAddress = Left$(LocalIPAddress, x - 1)

Text1.Text = ComputerName
ComputerName = Text1.Text

Daniel
3
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 112 internautes nous ont dit merci ce mois-ci

Messages postés
3140
Date d'inscription
vendredi 14 mai 2004
Statut
Membre
Dernière intervention
11 mars 2019
31
je suppose que tes zones NomUtilisateur ,ComputerName, etc...
proviennent de fonctions APi donc il doit rester des chr$(0) à la fin
c'est pourquoi ce qui suit n'est pas affiché.

Daniel
Messages postés
69
Date d'inscription
vendredi 10 septembre 2004
Statut
Membre
Dernière intervention
4 mars 2013

Essaye a=msgbox "... (a étant un integer)

Car lorsque que l'on met des opérateurs, il faut en général mettre msgbox dans une expression.

Zifnig
Messages postés
184
Date d'inscription
mercredi 8 décembre 2004
Statut
Membre
Dernière intervention
1 septembre 2010
1
Comment dois je faire pour afficher toutes ces données?
:question)

----------------------------------------------------
PS : Sympa ton nouvel avatar !
----------------------------------------------------
Messages postés
3140
Date d'inscription
vendredi 14 mai 2004
Statut
Membre
Dernière intervention
11 mars 2019
31
si c'est le cas que j'ai invoqué, il faut enlever les zéros de la fin avant d'afficher.

Daniel
Messages postés
184
Date d'inscription
mercredi 8 décembre 2004
Statut
Membre
Dernière intervention
1 septembre 2010
1
Désolé Zifnig, mais ca ne fonctionne pas

:shock)
Messages postés
184
Date d'inscription
mercredi 8 décembre 2004
Statut
Membre
Dernière intervention
1 septembre 2010
1
Gobillot,

Peux - tu me dire comment faire pour supprimer le Chr$(0) à la fin des retours de fonctions d'API?

Merci

:)
Messages postés
4172
Date d'inscription
mercredi 30 juillet 2003
Statut
Membre
Dernière intervention
9 juin 2006
27
Gobillot on pourrait meme tout simplement remplacer les vbNullChar par ... rien du tout.

NomUtilisateur = Replace$(NomUtilisateur,vbNullChar,"")

Comme ca, c'est plus rapide et plus clair.

Zifnig < Faudra que tu m'expliques ton argument "Car lorsque que l'on met des opérateurs, il faut en général mettre msgbox dans une expression.", car cela m'interpelle quelque part et je voudrais bien savoir ou tu as été péché cette idée la ??? De plus le "En général" est rarement le bien venu en programmation :soit ce que tu dis est un fait constant (sous réserve que les conditions soit vérifié, et il te faut alors bien les connaitre) soit cela n'est pas juste : Rien n'est "en général" en programmation !! Il faut t'ôter cette idée de la tête. Si tu as cru comprendre cela d'expériences de codage passées, je te conseille de bien revoir la doc VB.

Christophe R.
Messages postés
3140
Date d'inscription
vendredi 14 mai 2004
Statut
Membre
Dernière intervention
11 mars 2019
31
crenaud76 >> tout à fait d'accord j'avais pas pensé merci !

NomUtilisateur = Replace$(NomUtilisateur,vbNullChar, vbNullString)

Daniel
Messages postés
184
Date d'inscription
mercredi 8 décembre 2004
Statut
Membre
Dernière intervention
1 septembre 2010
1
Merci pour vos réponses.

j'ai utilisé la méthode de remplacement par vbNullString pour la première donnée pour essayer et à l'affichage j'ai obtenu toutes les autres données sauf la première!

Comment cela est il possible :question)
Merci
Messages postés
4172
Date d'inscription
mercredi 30 juillet 2003
Statut
Membre
Dernière intervention
9 juin 2006
27
Ne remplace par vbNullchar par vbNullString !! Car en VB, une chaine vide, càd "", ce n'est pas la même chose que vbNullString !
vbNullString ne doit être utiliser que dans des cas extrèmes et lors d'utilisation de fonction provenant de DLL -codé en C- qui ne comprenne pas toujours bien la façon de représenter les chaine de VB, car le C et VB ne représente pas du tout les chaine de la même façon en mémoire. Mais c'est une très longue histoire ...
Fait le Replace() avec "", cela marchera mieux.

Christophe R.
Messages postés
184
Date d'inscription
mercredi 8 décembre 2004
Statut
Membre
Dernière intervention
1 septembre 2010
1
J'avais fait cette manip et c'est le résultat que j'ai obtenu (voir post précédent)

;)
Messages postés
4172
Date d'inscription
mercredi 30 juillet 2003
Statut
Membre
Dernière intervention
9 juin 2006
27
En remplacant vbnullchar par vbNullString, il te manque ta data ? Cela est normal

Et remplacant vbnullchar par "", ca marche non ? En tout cas, cela devrait marcher !!

Christophe R.
Messages postés
184
Date d'inscription
mercredi 8 décembre 2004
Statut
Membre
Dernière intervention
1 septembre 2010
1
Oui oui il me manque la data avec ce code:

    wNomUtilisateur = Replace(NomUtilisateur, Chr$(0), "")
Messages postés
3140
Date d'inscription
vendredi 14 mai 2004
Statut
Membre
Dernière intervention
11 mars 2019
31
à moins que NomUtilisateur soit vide
quand tu appelles l'API est-ce que tu remplis ta zone avec des chr$(0) ?
si oui essayes de mettre des espaces à la place
NomUtilisateur = space$(255)

Daniel
Messages postés
184
Date d'inscription
mercredi 8 décembre 2004
Statut
Membre
Dernière intervention
1 septembre 2010
1
Lorsque j'utilise une Msgbox pour chaque data, ça fonctionne correctement.

Mais c'est dès que je groupe tout que ca déconne!
Messages postés
3140
Date d'inscription
vendredi 14 mai 2004
Statut
Membre
Dernière intervention
11 mars 2019
31
vérifie la longueur de NomUtilisateur après le replace
et vérifie chaque caractère avec la valeur ASCII

Daniel
Messages postés
184
Date d'inscription
mercredi 8 décembre 2004
Statut
Membre
Dernière intervention
1 septembre 2010
1
après le Replace, NomUtilisateur est vide.

Mais
j'ai utilisé la méthode du transfert dans un textbox puis de la récup de toutes les data dans un Msgbox et ca marche!

Merci pour votre aide..

@+

8-)