jrivet
Messages postés7392Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention 6 avril 2012
-
12 juin 2007 à 11:49
jrivet
Messages postés7392Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention 6 avril 2012
-
12 juin 2007 à 15:26
'Lut la communauté.
Aller une petite question.
Si besoin Sur VB6 SP6 (W2K SP4).
L'aide en ligne MSDN étant la même pour Chr$ et ChrW, j'aimerais savoir pourquoi ces deux fonctions ne retourne pas la même chose pour certaines valeurs.
J'ai fait un petit prog qui illustre ce que j'avance.
pour cela ajouter une ListView ListView1 et executer ce code.
regardez alors les lignes selectionnées.
For Num = 0 To 254
'On rempli le ListView
With ListView1.ListItems.Add(, "@@" & Num, CStr(Num))
.SubItems(1) = Hex(Num)
.SubItems(2) = Hex(AscW(Chr$(Num)))
.SubItems(3) = Hex(AscW(ChrW(Num)))
.SubItems(4) = Chr$(Num)
.SubItems(5) = ChrW(Num)
If (.SubItems(2) <> .SubItems(3)) Then
.Selected = True
.EnsureVisible
End If
End With
Next
End Sub , ----
[code.aspx?ID=41455 By Renfield]
Si ces messieurs les Experts en VB6 peuvent m'éclairer cela serait génial...
En attendant vos réponses, liens et autres explications, Google is my friend .
Je vais aller voir aussi cher M$ voir ce que je trouve.
D'avance merci à ceux qui prendront le temps de lire et de répondre.
@+: =89254 Ju£i?n Pensez: Réponse acceptée
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 12 juin 2007 à 12:51
j'imagine que tu ne vas pas te contenter d'un simple "c'est comme ça" ....
pas sur qu'il y ait quoi que ce soit a comprendre, suffit, je pense de comparer les tableau de caractères de ces deux manière d'encoder les caractères....
jrivet
Messages postés7392Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention 6 avril 201260 12 juin 2007 à 14:31
Re,
Bon voici en anglais dans le texte ce que j'ai trouve jusqu'à présent, et cela me pousse à me résigner....
ChrW$() is different from Chr$() because they take different parameter values.
However, ChrW$() equals Chr$() when working with characters from ASCII/Ansi 0 to 127.
Yes. I didn't say that characters 128-159 aren't used in ANSI 1252 it just
they are not same as characters 128-159 in unicode. .
VB does not just add a zero byte for every character. That's true
for the low ASCII characters, because that's how Unicode is defined...
the first 128 Unicode characters are the traditional ASCII set. But it
decidedly NOT true for the upper Ansi characters. To prove it, compare
AscW / ChrW$ with Asc / Chr$ in the range of 129 to 150 or so.
M$: The characters that appear in Windows above 127 depend on the selected typeface. une âme charitable pour rafraichir mon anglais SVP
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 12 juin 2007 à 15:20
A ton service, donc, Julien,
encore que :
1) le rédacteur de ce texte anglais semble avoir quelques petites difficultés d'expression dans sa propre langue.
2) ma traduction est ici libre et je l'ai un peu assaisonnée pour qu'elle soit plus digeste :
ChrW$() diffère de Chr$() car ils correspondent à des valeurs de paramètres différentes.
ChrW$() donne toutefois le même résultat que Chr$() si l'on travaille avec des caractères ASCII/Ansi compris entre 0 et 127
Achtung ! je ne'ai pas dit que les caractères 128 à 159 ne sont pas utilisés en ANSI 1252 ! Ils ne sont simplement pas les mêmes caractères que les caractères 128 à 159 en Unicode...
Il est vrai que VB ne fait pas qu'ajouter un byte zéro à chaque caractère des caractères de valeur ASCII basse (puisque c'est ainsi qu'est défini l'unicode)...
Les 128 premiers caractères Unicode sont tout simplement le jeu ASCII traditionnel.
Mais ceci n'est sans aucun doute PAS VRAI en ce qui concerne les caractères Ansi de rang élevé.
Pour le prouver :
comparons :
AscW / ChrW$
avec
Asc / Chr$ dans l'intervalle 129 to 150 (ou similaire)
M$: les caractères qu'affiche Windows au dessus de la valeur 127 dépendent du "typeface" choisi"
jrivet
Messages postés7392Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention 6 avril 201260 12 juin 2007 à 15:22
Re,
Merci non pas tout c'était pour TypeFace.
NOn Mais voila je me suis résolu avec cela
Yes. I didn't say that characters 128-159 aren't used in ANSI 1252 it just
they are not same as characters 128-159 in unicode. .
jrivet
Messages postés7392Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention 6 avril 201260 12 juin 2007 à 15:26
Re,
Sorry , Topic Croisé.
Merci pour la traduc
Aller Topic Résolu.
Merci à vous deux et bonne journée. m'en vais faire mes modif.... sont pénibles ces chinois et ces Russes c'est à cause d'eux que je dois tout changer a cause de leur signes....