Page 1 sur 1
[R] StringReplace - Ascii
Posté : lun. 06 août 2012 13:45
par 4sp4rt4m3
Salut à tous,
Voilà je m'explique, j'utilise la fonction "StringReplace" pour remplacer un caractère par un autre, en l'occurrence ici, une lettre par un caractère Ascii étendu. En autoit mon caractère est censé s'appeler "Chr(176)" et devrait s'afficher comme cela :
Or il s'affiche comme cela :
En cherchant un peu je trouve deux sons de cloche sur le net, ici :
By Tlem
Le caractère 176 est bien celui que je retrouve dans mon programme.
Alors qu'ici :
http://www.asciitable.com/
Je retrouve le caractère ascii que je souhaite.
Les deux caractères ont le même code, y a t'il une manip' à faire pour obtenir le caractère souhaité?
Mon code :
Code : Tout sélectionner
$code = Chr(176)
StringReplace("mon fichier texte", "M", $code) ~Remplace tout les "M" par le caractère ascii "░"
Merci de vos aides

Re: [..] StringReplace - Ascii
Posté : lun. 06 août 2012 14:09
par Iste
chr() semble limité, mais en enregistrant votre code en utf-8 vous serez en mesure de faire des $var = "░" sans souci ! (Fichier -> encodage - > UTF-8)
Re: [..] StringReplace - Ascii
Posté : lun. 06 août 2012 14:16
par 4sp4rt4m3
Merci de ta réponse Iste, imaginons que je veuille mettre le résultat dans un "edit", comment puis je dire à l'"edit" d'afficher le résultat en UTF-8?
Re: [..] StringReplace - Ascii
Posté : lun. 06 août 2012 14:22
par Iste
A partir du moment ou vous travailler en UTF-8, ces caractères seront "normaux"
voir :
http://autoitscript.fr/forum/viewtopic.php?f=11&t=5523
Re: [..] StringReplace - Ascii
Posté : lun. 06 août 2012 14:27
par timmalos
le code ascii etendu depend du système d'explitation et de la langue utilisée. Le tableau de Tlem, également utilisé par votre ordinateur correspond au codage "iso-latin-1" ou également "iso-8859-1", pour l'Europe de l'Ouest. Celui de votre site internet correspond au codage utf8.
En conclusion, Il vous suffit d'utiliser l'utf8 et vos caractères deviendront 'normaux'.
N'hesitez pas à lire la page wikipedia qui vous apportera plus d'informations :
http://en.wikipedia.org/wiki/Extended_ASCII
Edit : grillé

Re: [..] StringReplace - Ascii
Posté : lun. 06 août 2012 19:07
par mikell
4sp4rt4m3 a écrit : imaginons que je veuille mettre le résultat dans un "edit"
Perso j'avais résolu ce genre de problème comme ça
Pas classe du tout mais efficace, si le caractère n'existe pas dans ma police défaut (tahoma)
Code : Tout sélectionner
GuiCreate("", 200, 100)
$label = GuiCtrlCreateLabel("", 10,10,50,50)
GUICtrlSetFont(-1, 24, 400, 0, "Arial Unicode MS") ; (ou "Courier New" comme sur ce site)
GuisetState()
GuiCtrlSetData($label, ChrW(9617) )
while GuiGetMsg() <> -3
wend
Re: [..] StringReplace - Ascii
Posté : lun. 06 août 2012 19:16
par Tlem
Pour information, ce tableau ne provient pas de moi, mais de la traduction de la documentation US de AutoIt ...
http://www.autoitscript.com/autoit3/doc ... /ascii.htm
De plus en effectuant quelques recherches complémentaires, vous seriez tombé sur :
http://www.table-ascii.com/
Bien plus complet que votre lien ...
Regardez dans la section : Jeu de caractères ASCII - ISO 8859-1 ( Latin - 1 ) - Ouest / Europe de l'ouest

Re: [..] StringReplace - Ascii
Posté : lun. 06 août 2012 23:00
par 4sp4rt4m3
Merci pour vos aides

, problème résolu

Re: [R] StringReplace - Ascii
Posté : mar. 07 août 2012 10:43
par jchd
Pour future référence, l'encodage qu'emploie AutoIt est UTF-16. Du moins en première approximation car c'est plus exactement l'intersection d'UTF-16 et d'UCS-2 mais la nuance ne concerne que les applications très spéciales.
Dans une chaîne AutoIt, un caractère utilise un demi-mot de 16 bits et représente donc un caractère du plan 0 d'Unicode.