Problème avec une variable String

Résolu
Signaler
Messages postés
330
Date d'inscription
mercredi 6 décembre 2000
Statut
Membre
Dernière intervention
26 octobre 2017
-
Messages postés
330
Date d'inscription
mercredi 6 décembre 2000
Statut
Membre
Dernière intervention
26 octobre 2017
-
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

Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
240
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
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
240
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
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
240
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
Messages postés
330
Date d'inscription
mercredi 6 décembre 2000
Statut
Membre
Dernière intervention
26 octobre 2017

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
Messages postés
330
Date d'inscription
mercredi 6 décembre 2000
Statut
Membre
Dernière intervention
26 octobre 2017

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), "")
Messages postés
330
Date d'inscription
mercredi 6 décembre 2000
Statut
Membre
Dernière intervention
26 octobre 2017

Merci pour cette réponse