Bonjour...
j'ai beau cherché je ne trouve rien de concluant.
Je sais dessiner des caractères persos, et je sais les afficher.
je voudrais remplacer des caractères accentués de chaines (String) par les caractères persos... un "é" par un caractère perso stocké dans la cgram de l'afficheur.
Quand je tente de reconnaître un caractère accentué, je n'y arrive pas.
...
1 39 -> '
2 -61
3 -87 -> é
4 116 -> t
5 97 -> a
6 105 -> i
7 115 -> s
...
On dirait (ça doit-être le cas) qu'un caractère accentué est codé sur plus de bits qu'un caractère ascii de base dans une String.
Donc qu'il occupe deux octets de mon array plutôt que 1.
Vu sa physionomie, je hasarderais un truc du genre le premier octet c'est la partie gauche et le second, la partie droite de mon chiffre codé sur 16 bits...
et là après avoir ramené ma science... je fais comment:
- pour détecter que c'est un "long" et quelle est sa valeur ?
J'ai croisé un post succinct en anglais qui disait de créer un buffer 32bits et passer la table (la String) par lui pour connaitre la valeur du caractère...
Ok... pourquoi pas.
Si je comprends l'idée, je suis loin de savoir l'écrire en C...
Faut-il travailler à l'ancienne, sans String mais avec string et des pointeurs?
Ahhhh les pointeurs, quand je lis dans mon manuel de C, je comprends, et si je tourne la tête, je me retrouve poisson rouge (ou atteint du syndrome Korsakov) et je ne sais plus comment marche un pointeur.
Bref.
J'en appelle à votre bonne âme, votre clémence, pour me gratter cette foutue fonction qui éplucherait ma chaine pour la remplacer (avant d'envoyer le caractère au lcd) le caractère accentué et écrire avec un caractère perso
write(index_de_la_table_des_caract_perso)
plutôt que le double caractère beurk...
Bon si vous voulez pas gratter, peut-être que j'ai mal cherché et que vous pouvez me pointer vers un début de solution.
merci infiniment de votre aide.
ps: je bricole avec le module dfrobot LCD i2C. et la lib custom liquidCrystal_I2C (de chez dfrobot) écrite par des sans accents...