yannou24
Messages postés27Date d'inscriptionlundi 12 septembre 2005StatutMembreDernière intervention 1 février 2006
-
28 oct. 2005 à 18:10
us_30
Messages postés2065Date d'inscriptionlundi 11 avril 2005StatutMembreDernière intervention14 mars 2016
-
29 oct. 2005 à 21:19
Bonjour à tous
Mes 2 ou 3 derniers pbs ont été résolus assez rapidement sur ce site alors je tente ma chance à nouveau.
J'explique : j'ai une table dans ma base de données qui contient des caractères spéciaux du type '?', 'Δ', 'β', 'Я', '¥' etc...
Dans mon prog, j'ouvre ma table grace a 1 objet adodc.recordset et je recupère le champ 'char' de ma table. Le souci c'est que je m'apercois que les données passent mal dans la mesure où les caractères spéciaux sont transformés soit en lettre 'S', soit dans la plupart des cas en '?'.
Quand je fais text1.text = objet_ado!char là ou le m'attends trouver '?' et ben j'ai '?'.
Voila mon pb.
J'ai besoin d'aide svp !!
us_30
Messages postés2065Date d'inscriptionlundi 11 avril 2005StatutMembreDernière intervention14 mars 201610 29 oct. 2005 à 21:17
Bonsoir,
JE connais pas la réponse, mais j'ai une piste pour la compréhension...
LE problème des "?" vient de la conversion en interne de la chaîne de caractère sur 1 octet. Or chaque caractère de la chaîne du départ est codé sur 2 octets, afin de permettre l'affichage des caractères spéciaux : c'est l'unicode.
Le "?" indique justement que les caractères spéciaux ne peuvent pas être converti correctement...
Voilà, pour l'explication... Maintenant, je ne sais quel élément converti la chaîne du départ (contenant les caractères spéciaux). JE veux dire par là, quand il y a une affectation d'une chaîne avec une variable, selon le type de la variable, la transmission peut se faire sur seulement 1 octet, au lieu de 2.
Sur un exemple réduit, tu peux bien visualiser le problème, en faisant une feuille avec deux Text Box, et un bouton.
Dans le bouton, mets le code suivant :
m = TextBox1.Text
MsgBox TextBox1.Text
TextBox2.Text = m
Puis, si tu mets dans textbox1 le texte : УФЦўΔΓ
Msgbox lui converti en interne sur 1 octet l'affichage et renvoi : ?????G
Ensuite text2.text quand a lui récupère correctement les caractères spéciaux de text1.
=
Sinon, une fonction pouvant être utile, c'est "StrConv" ... (regarde l'aide)
ou encore, l'utilisation d'un tabaleau Byte qui contiendra directement la chaîne... mais je ne sais pas comment cela peut s'agencer dans ton projet...
=
Voilà, c'est pas la réponse, mais juste une piste...