Karin.code
Messages postés183Date d'inscriptionvendredi 2 septembre 2016StatutMembreDernière intervention16 janvier 2018
-
12 sept. 2016 à 19:46
cs_ShayW
Messages postés3253Date d'inscriptionjeudi 26 novembre 2009StatutMembreDernière intervention 3 décembre 2019
-
13 sept. 2016 à 22:04
Bonjour,
je suis en train de créer une application qui contient tout les symboles (comme celle de Microsoft)
il y a en tous 65535 caractères , j'arrive a remplir la ListView (Large Icone) avec tous les caractères (chrW(numéro))
mot problème et le suivant :
certains caractères s'affiche sous forme carré ഀ
je c'est que le problème vient de la police, j'ai essayé tous les police qui se trouve dans Visual basic express 2010 :
il y a que "Cambria Math" qui affiche certains symboles mais il reste beaucoup qui reste sous forme carré ഀ
ma question est la suivante, existe il une police qui peut être inséré dans Visual Basic est qui affiche la totalité des symboles sous leurs vrais forme ?
Merci pour votre future aide
Karin.code
Messages postés183Date d'inscriptionvendredi 2 septembre 2016StatutMembreDernière intervention16 janvier 20182 12 sept. 2016 à 22:56
j'ai pris un symbole de Word (Je précise que la police utilisée dans ce document Word est :"Cambria Math"), j'ai copier le symbole dans une textbox
j'ai mis dans un bouton le code suivant label1.text = ASC(textbox1.text)
il m'affiche le code symbole
je cherche dans la ListView le code mais le symbole correspondant est un carré
je ne comprend pas, meme si la police de la listVieuw et du document Word et la même ("Cambria Math"), le symbole n'est pas afficher de la même facon
vb95
Messages postés3472Date d'inscriptionsamedi 11 janvier 2014StatutContributeurDernière intervention13 avril 2024169 Modifié par vb95 le 13/09/2016 à 02:28
bonjour Karin.code
Tout d'abord peux-tu préciser quelle est le nom de cette application Microsoft ?
Ensuite qu'appelles-tu un symbole ? Est-ce un caractère que tu tapes au clavier ( exemple la lettre A majuscule ou le signe + du pavé numérique ?
Parlons maintenant des codes ASCII, Unicode(UTF16) et UTF32
Au début de l'informatique on a décidé qu'il y aurait 128 codes pour représenter les lettres, les codes de contrôles : le A majuscule a 65 comme code alors que la touche Echap qui est un code de contrôle a 27 comme code .
On s'est aperçu que cela était trop juste donc on a utilisé les codes de 0 à 256 ( code ASCII )
Mais les besoins étant grandissant on a donc décidé d'utiliser un nouveau code de 0 à 65535 . Et parmi ces 65536 codes certains ne sont pas utilisés par la langue française : je pense aux lettres grecques, russes par exemple ainsi qu'aux caractères arabes , japonais, chinois
donc cela explique à mon avis le fait que ce caractère n'apparaît point et est remplacé par un carré .
il y a aussi certains caractères spéciaux comme le symbole Sigma en mathématiques ou le symbole de l'infini en Mathématiques
Ton Pc qui est en langue française est capable d'afficher des caractères arabes ou chinois sans changer la langue du PC
Maintenant pourquoi Word et une listview n'ont pas les mêmes caractères : une listview nest qu'un contrôle somme toute basique bien que puissant en possibilités alors que Word est un logiciel complet et très puissant côté possibilités ! C'est comme si tu demandais à une 4L d'aller à la même vitesse qu'une Porsche
Cette réponse n'est que le reflet de ma pensée mais n'est par certifiée au niveau technique ( je paux me tromper)
en espérant t'aider !
Karin.code
Messages postés183Date d'inscriptionvendredi 2 septembre 2016StatutMembreDernière intervention16 janvier 20182 13 sept. 2016 à 10:59
Merci de m'avoir répondu, et merci pour l'explication (Merci pour le site aussi)
alors pour les caractères arabes , japonais, chinois et français il y a pas de problème ils s'affiche normalement
mais pour les caractères comme la flèche (numéro du symbole 61612) et aussi bien d'autre symbole il s'affiche sous forme de carré
je comprendrais que la langue a un rapport si ça avait été des lettre (A,B,C ..etc)
et aussi peux-tu m'expliquer pourquoi si je change la police certain symbole reprendre leur forme d'origine
désolé de te demander autant, tu m'a déjà beaucoup aider la dernière fois
Karin.code
Messages postés183Date d'inscriptionvendredi 2 septembre 2016StatutMembreDernière intervention16 janvier 20182 13 sept. 2016 à 11:36
dans le site que tu ma montré j'ai trouvé pour la flèche à gauche de code (2190, 27F5)
j'ai fait comme suite :
Label1.text = ChrW(2190) --> un carré s'affiche
Label2.text = chr(27F5) -> une erreur s'affiche pour le 5, j'ai effacer le 5 le code a changé de 27F5 à 27.0F -> la flèche s'affiché
vb95
Messages postés3472Date d'inscriptionsamedi 11 janvier 2014StatutContributeurDernière intervention13 avril 2024169
>
Karin.code
Messages postés183Date d'inscriptionvendredi 2 septembre 2016StatutMembreDernière intervention16 janvier 2018 Modifié par vb95 le 13/09/2016 à 15:34
bonjour Karin.code
D'abord tu ne m'as pas répondu : peux-tu préciser quelle est le nom de cette application Microsoft ?
Il faut comprendre que certains caractères sont dans une police de caractères et pas dans une autre
Certains caractères spéciaux en mathématiques ( je repense au symbole de l'infini qui est un 8 couché horizontalement par exemple) s'afficheront dans une police spécifique alors qu'ils sont absents dans les polices standards usuelles !
Si un symbole s'affiche sous forme de carré c'est qu'il n'est pas disponible dans la police de caractères utilisée
tout ceci dépend de la langue qu'utilise le PC et de la police de caractères utilisée
Attention aussi : ChrW est différent de Chr ( le premier utilise les caractères Unicode alors que le second utilise les caractères ASCII
Autre chose : Chr et ChrW sont d'anciennes commandes VB 6 qui ont été gardées sous VB net ! Si tu veux programmer en vrai VB NET ( sans y importer des commandes de compatibilité VB 6) il faut aller dans Projet --> Références et supprimer l'entrée Microsoft.VisualBasic !
En même temps dans Projet --> Compiler met Option Strict et Option Explicit sur On : l'un t'oblige à déclarer toutes tes variables alors que l'autre t'oblige à faire de façon explicite les conversions de type
Reprends le lien du cours que je t'ai fourni pour y chercher des explications plus complètes
Tu as écrit : Label1.text = ChrW(2190) --> un carré s'affiche
Label2.text = chr(27F5) -> une erreur s'affiche pour le 5, j'ai effacer le 5 le code a changé de 27F5 à 27.0F -> la flèche s'affiché
La première ligne est pour un caractère unicode ( de 0 à 65535) est n'est pas disponible
La seconde ligne avec chr est pour un caractère ASCII (0 à 256) : le 27F5 est trop grand ( attention notation en hexadécimal : les chiffres hexadécimaux en base 16 sont 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F)
A =10, B = 11 etc.... jusqu'à F = 15 : donc 21 en hexadécimal = 33 en décimal
En informatique il faut savoir compter en binaire et en hexadécimal ( pour le décimal tu le sais ...... enfin j'espère lol)
Le code change en 27.0F : 27 est le caractère d'échappement qui permet d'afficher d'autres caractères spécifiés après
Pour t'expliquer 97 affiche un e minuscule . Pour afficher un é minuscule tu feras 27 et XX ( XX représente le code supplémentaire pour afficher le é minuscule : je n'ai pas en tête la valeur exacte de XX pour afficher le é)
En espérant t'aider au mieux et bon courage
Karin.code
Messages postés183Date d'inscriptionvendredi 2 septembre 2016StatutMembreDernière intervention16 janvier 20182
>
vb95
Messages postés3472Date d'inscriptionsamedi 11 janvier 2014StatutContributeurDernière intervention13 avril 2024 13 sept. 2016 à 21:45
Bonsoir vb95
désolé de ne pas avoir répondu à ta question
le logiciel Microsoft est Microsoft Office (Word, Excel, ... etc)
et grâce à ton explication je comprend beaucoup mieux la différence entre Chr et ChrW Merci
Bonjour
un petit test
Pas tous les caractères semblables sont identiques
Dim listcharacters As New List(Of String) For iter = 0 To 65535 listcharacters.Add(Convert.ToChar(iter)) Next If listcharacters(65521) = listcharacters(65522) Then Stop End If 'retirer les doublons listcharacters = listcharacters.Distinct.ToList
quand je lance le debugger ne s'arrete pas, bien qu'à vue d'oeil
listcharacters(65521) et listcharacters(65522) semble les
memes
et aussi le listcharacters.count ne change pas à la suite
de
listcharacters = listcharacters.Distinct.ToList
vb95
Messages postés3472Date d'inscriptionsamedi 11 janvier 2014StatutContributeurDernière intervention13 avril 2024169 13 sept. 2016 à 20:51
bonsoir cs_ShayW
Si je comprends bien les caractères 65521 et 65522 sont tous les deux représentés par un petit carré mais ils n'appartiennent pas à la police de caractères utilisée au moment présent .
Merci pour cette précision : dis-moi si ma pensée te semble juste
Bonne soirée
cs_ShayW
Messages postés3253Date d'inscriptionjeudi 26 novembre 2009StatutMembreDernière intervention 3 décembre 201957
>
vb95
Messages postés3472Date d'inscriptionsamedi 11 janvier 2014StatutContributeurDernière intervention13 avril 2024 13 sept. 2016 à 22:04
Bonsoir vb95
mais ils n'appartiennent pas à la police de caractères utilisée au moment présent surement
à quoi sert il si on ne peut pas les utiliser ?
une occasion d'apprendre le chinois
Karin.code
Messages postés183Date d'inscriptionvendredi 2 septembre 2016StatutMembreDernière intervention16 janvier 20182 13 sept. 2016 à 21:44
Bonsoir cs_ShayW Merci pour ta réponse
je l'ai déjà remarqué
au début je croyais que le carré étais juste un symbole qui se répéter beaucoup alors j'ai crée une condition, si le carré existe il sera supprimer de la liste mais ça n'a pas marcher, car même s'il il s'affiche sous forme carré il garde toujours ses propriétés (le code) , alors se que je voulais savoir esque c'est possible de leurs faire reprendre leur forme initiale
j'ai trouver se code :
https://msdn.microsoft.com/fr-fr/library/system.text.encoding.aspx qui permet de rendre à un symbole sa forme d'origine (se code marche pour un document texte quand le symbole s'affiche sous forme "?"), mais j'arrive pas à l'intégrer a un listview ou listBox
Modifié par vb95 le 13/09/2016 à 02:28
Tout d'abord peux-tu préciser quelle est le nom de cette application Microsoft ?
Ensuite qu'appelles-tu un symbole ? Est-ce un caractère que tu tapes au clavier ( exemple la lettre A majuscule ou le signe + du pavé numérique ?
Parlons maintenant des codes ASCII, Unicode(UTF16) et UTF32
Au début de l'informatique on a décidé qu'il y aurait 128 codes pour représenter les lettres, les codes de contrôles : le A majuscule a 65 comme code alors que la touche Echap qui est un code de contrôle a 27 comme code .
On s'est aperçu que cela était trop juste donc on a utilisé les codes de 0 à 256 ( code ASCII )
Mais les besoins étant grandissant on a donc décidé d'utiliser un nouveau code de 0 à 65535 . Et parmi ces 65536 codes certains ne sont pas utilisés par la langue française : je pense aux lettres grecques, russes par exemple ainsi qu'aux caractères arabes , japonais, chinois
donc cela explique à mon avis le fait que ce caractère n'apparaît point et est remplacé par un carré .
il y a aussi certains caractères spéciaux comme le symbole Sigma en mathématiques ou le symbole de l'infini en Mathématiques
Ton Pc qui est en langue française est capable d'afficher des caractères arabes ou chinois sans changer la langue du PC
Maintenant pourquoi Word et une listview n'ont pas les mêmes caractères : une listview nest qu'un contrôle somme toute basique bien que puissant en possibilités alors que Word est un logiciel complet et très puissant côté possibilités ! C'est comme si tu demandais à une 4L d'aller à la même vitesse qu'une Porsche
Cette réponse n'est que le reflet de ma pensée mais n'est par certifiée au niveau technique ( je paux me tromper)
en espérant t'aider !
Regarde cette page Internet : tu as plein de symboles mathématiques avec leurs codes Unicode : https://fr.wikipedia.org/wiki/Table_de_symboles_math%C3%A9matiques
13 sept. 2016 à 10:59
alors pour les caractères arabes , japonais, chinois et français il y a pas de problème ils s'affiche normalement
mais pour les caractères comme la flèche (numéro du symbole 61612) et aussi bien d'autre symbole il s'affiche sous forme de carré
je comprendrais que la langue a un rapport si ça avait été des lettre (A,B,C ..etc)
et aussi peux-tu m'expliquer pourquoi si je change la police certain symbole reprendre leur forme d'origine
désolé de te demander autant, tu m'a déjà beaucoup aider la dernière fois
13 sept. 2016 à 11:36
j'ai fait comme suite :
Label1.text = ChrW(2190) --> un carré s'affiche
Label2.text = chr(27F5) -> une erreur s'affiche pour le 5, j'ai effacer le 5 le code a changé de 27F5 à 27.0F -> la flèche s'affiché
Modifié par vb95 le 13/09/2016 à 15:34
D'abord tu ne m'as pas répondu : peux-tu préciser quelle est le nom de cette application Microsoft ?
Il faut comprendre que certains caractères sont dans une police de caractères et pas dans une autre
Certains caractères spéciaux en mathématiques ( je repense au symbole de l'infini qui est un 8 couché horizontalement par exemple) s'afficheront dans une police spécifique alors qu'ils sont absents dans les polices standards usuelles !
Si un symbole s'affiche sous forme de carré c'est qu'il n'est pas disponible dans la police de caractères utilisée
tout ceci dépend de la langue qu'utilise le PC et de la police de caractères utilisée
Attention aussi : ChrW est différent de Chr ( le premier utilise les caractères Unicode alors que le second utilise les caractères ASCII
Autre chose : Chr et ChrW sont d'anciennes commandes VB 6 qui ont été gardées sous VB net ! Si tu veux programmer en vrai VB NET ( sans y importer des commandes de compatibilité VB 6) il faut aller dans Projet --> Références et supprimer l'entrée Microsoft.VisualBasic !
En même temps dans Projet --> Compiler met Option Strict et Option Explicit sur On : l'un t'oblige à déclarer toutes tes variables alors que l'autre t'oblige à faire de façon explicite les conversions de type
Reprends le lien du cours que je t'ai fourni pour y chercher des explications plus complètes
Tu as écrit :
Label1.text = ChrW(2190) --> un carré s'affiche
Label2.text = chr(27F5) -> une erreur s'affiche pour le 5, j'ai effacer le 5 le code a changé de 27F5 à 27.0F -> la flèche s'affiché
La première ligne est pour un caractère unicode ( de 0 à 65535) est n'est pas disponible
La seconde ligne avec chr est pour un caractère ASCII (0 à 256) : le 27F5 est trop grand ( attention notation en hexadécimal : les chiffres hexadécimaux en base 16 sont 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F)
A =10, B = 11 etc.... jusqu'à F = 15 : donc 21 en hexadécimal = 33 en décimal
En informatique il faut savoir compter en binaire et en hexadécimal ( pour le décimal tu le sais ...... enfin j'espère lol)
Le code change en 27.0F : 27 est le caractère d'échappement qui permet d'afficher d'autres caractères spécifiés après
Pour t'expliquer 97 affiche un e minuscule . Pour afficher un é minuscule tu feras 27 et XX ( XX représente le code supplémentaire pour afficher le é minuscule : je n'ai pas en tête la valeur exacte de XX pour afficher le é)
En espérant t'aider au mieux et bon courage
13 sept. 2016 à 21:45
désolé de ne pas avoir répondu à ta question
le logiciel Microsoft est Microsoft Office (Word, Excel, ... etc)
et grâce à ton explication je comprend beaucoup mieux la différence entre Chr et ChrW
Merci