Problème avec une variable String

Résolu
Cjvg Messages postés 330 Date d'inscription mercredi 6 décembre 2000 Statut Membre Dernière intervention 26 octobre 2017 - 11 mai 2012 à 12:54
Cjvg Messages postés 330 Date d'inscription mercredi 6 décembre 2000 Statut Membre Dernière intervention 26 octobre 2017 - 11 mai 2012 à 17:48
Bonjour,


J'exécute un projet sous l'éditeur Visual Basic pour afficher le contenu de certaines zones
Dim Z1 as string
Dim I1 as long

Au départ la variable Z1 s'affiche comme suit:
Z1 = "BBBBB"
RAS

Je vérifie le nbre de caractères:
I1 = len(Z1)
I1 contient 6 alors qu'il devrait contenir 5 ?

Je réduit la longueur de Z1 comme suit

Z1 = mid(Z1,2)
Z1 contient toujours "BBBBB"
Il semble y avoir un caractère devant le 1er B


Si vous avez une explication à me donner

6 réponses

ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
11 mai 2012 à 17:40
C'est le caractère LineFeed vblf.
Il est peut-être resté là si, au lieu de supprimer des vbcrlf, tu t'es contenté de supprimer des chr(13).
Ou encore si tu as récupéré du texte séparé par des chr(10), sans les supprimer.
Tu ferais aussi bien avec :
Z1 = Replace(Z1, vblf, "")


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
3
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
11 mai 2012 à 13:33
Bonjour,
Il va falloir être techniquement très précis sur certains points :
C'est quoi, "certaines zones", exactement ? C'est quoi, une "zone" ?
Au départ la variable Z1 s'affiche comme suit:

elle s'affiche dans quoi et provient de quoi ou est initialisée comment ?
Tes réponses sont importantes car elles seules permettront de déterminer ce qui pourrait ne pas aller comme tu l'entends.

________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
11 mai 2012 à 13:38
Regarde par exemple ce qui arriverait avec un caractère Nullchar devant :
toto = Chr(0) & "BBBBBB"
MsgBox Len(toto)
MsgBox Mid(toto, 2)


Tu vois ?
Mais il pourrait être autre que chr(0).
D'où l'importance de la précision de ta réponse aux questions posées dans mon message précédent.

________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
0
Cjvg Messages postés 330 Date d'inscription mercredi 6 décembre 2000 Statut Membre Dernière intervention 26 octobre 2017
11 mai 2012 à 14:39
Je reformule ma question:

Comment supprimer simplement de Z1 les "ascii" qui polluent cette variable

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

Trop compliqué pour être plus précis. je dirais simplement que:
1) Je génère des instructions Visual Basic dans un Richtextbox.

2) Dans un second temps, dans une boucle, je balaye le Richtextbox pour sélectionner des informations que je charge dans la variable Z1 (Variable qui à ce niveau contient, lors de son exécution sous visual basic --> Z1 = "bbbbb"

3) Je modifie ensuite un fichier xxxx.FRM en remplaçant certaines informations par le contenu de Z1
0

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

Posez votre question
Cjvg Messages postés 330 Date d'inscription mercredi 6 décembre 2000 Statut Membre Dernière intervention 26 octobre 2017
11 mai 2012 à 16:19
Je n'ai pas encore trouvé la source de l'erreur mais j'ai trouvé le caractère qui polluait
ma variable. En attendant, pour continuer, j'ai ajouté dans ma source l'instruction:
Z1 = Replace(Z1, Chr(10), "")
0
Cjvg Messages postés 330 Date d'inscription mercredi 6 décembre 2000 Statut Membre Dernière intervention 26 octobre 2017
11 mai 2012 à 17:48
Merci pour cette réponse
0
Rejoignez-nous