cs_PeD
Messages postés63Date d'inscriptionvendredi 25 janvier 2002StatutMembreDernière intervention13 avril 2013
-
21 juil. 2011 à 11:40
NHenry
Messages postés15113Date d'inscriptionvendredi 14 mars 2003StatutModérateurDernière intervention22 avril 2024
-
21 juil. 2011 à 20:55
Pouff! Parfois je me dis que je ne suis pas trop malin, ou que je ne suis pas fûté, ou que je n'ai pas bien cherché dans les forums, ou dans la doc; parfois aussi je me dis que l'on pourrait faire simple......
Mon bête problème : j'ai un champ qui contient des caractères à remplacer par des espaces.
Ces caractères ne sont pas des caractères de type lettres ou chiffres : du genre en hexa 0D 0A ...
Je me réfère à la traduction ASCII via UltraEdit et j'obtiens ceci ( extrait)
pour mon champ ZCMP013A :
où 5B est le caractère [ que je veux par exemple remplacer par un espace .
Voilà tout ce que j'ai essayé
While InStr(ZCMP013A, Hex(91)) <> 0
ZCMP013A = Replace(ZCMP013A, Hex(91), "")
End While
While InStr(ZCMP013A, Asc(91)) <> 0
ZCMP013A = Replace(ZCMP013A, Asc(91), "")
End While
While InStr(ZCMP013A, Hex("91")) <> 0
ZCMP013A = Replace(ZCMP013A, Hex(?91?), "")
End While
While InStr(ZCMP013A, Asc("91")) <> 0
ZCMP013A = Replace(ZCMP013A, Asc(?91?), "")
End While
While InStr(ZCMP013A, Asc("95")) <> 0
ZCMP013A = Replace(ZCMP013A, Asc(?95?), "")
End While
While InStr(ZCMP013A, Hex(&H5B)) <> 0
ZCMP013A = Replace(ZCMP013A, Hex(&H5B), "")
End While
While InStr(ZCMP013A, &H5B) <> 0
ZCMP013A = Replace(ZCMP013A, &H5B, "")
End While
While InStr(ZCMP013A, "&H5B") <> 0
ZCMP013A = Replace(ZCMP013A, ?&H5B?, "")
End While
While InStr(ZCMP013A, Val(&H5B)) <> 0
ZCMP013A = Replace(ZCMP013A, Val(&H5B), "")
End While
>>> OK >>> While InStr(ZCMP013A, "[") <> 0
ZCMP013A = Replace(ZCMP013A, "[", " ")
End While
il n'y a que la dernière comparaison qui satisfait à la condition c'est à dire "["
Quelqu'un peut il me donner des indications sur la syntaxe?
cs_PeD
Messages postés63Date d'inscriptionvendredi 25 janvier 2002StatutMembreDernière intervention13 avril 2013 21 juil. 2011 à 20:00
Bingo !
Après recherches et essais ( perte de temps ! en tout consommation de temps !! ), voici ce qu'il faut faire.
Ne pas être omnubilé par le mot "conversion" mais simplement par la représentation.
Utiliser non pas HEX mais bien CHR
Donc le code qui fonctionne est
While InStr(ZCMP013A, Chr(91)) <> 0
ZCMP013A = Replace(ZCMP013A, Chr(91), "")
End While
NHenry
Messages postés15113Date d'inscriptionvendredi 14 mars 2003StatutModérateurDernière intervention22 avril 2024159 21 juil. 2011 à 20:55
Bonjour,
Si Tu es en VB.NET (comme tu as classé ton message), je te conseillerais de :
- Eviter InStr, mais préférer MaChaine.Contains ou MaChaine.IndexOf selon les besoins
- Hex, Val(&h ..), ASC, Chr à remplacer respectivement par :
Chaine=MonEntier.ToString("X2")
MonEntier=Integer.Parse(Chaine, Hexadecimal) 'Voir dans la liste de l'énumération le nom exacte du 2ième paramètre
Char.ToUtf32
Char.FromUtf32