Bonjour,
Mon programme compare chaque lettre d'un mot grec avec un tableau de voyelles enregistrées dans un fichier .INI
Si la lettre du mot grec est égale à une voyelle présente dans le fichier INI, le programme la remplace par un point.
Le mot qui s'affiche alors est composé de consonnes et de points.
Par exemple le mot τοῦτῷ s'affiche τ..τ.. L'élève doit retrouver le mot grec.
Un _ArrayDisplay() me montre que la récupération des valeurs grecques du fichier INI se fait par des signes nouveaux du type i¼. Ce qui explique l'échec de l'opération de comparaison :
Par exemple, au lieu d'obtenir τ..τ.. , on obtient le mot entier.
Si je tente de construire le tableau des voyelles grecques directement dans mon programme, celles-ci ne s'affichent pas dans mon code. Elles sont remplacées par des points d'interrogation.
Mais lorsque je construis le tableau des voyelles en récupérant les données dans un fichier TXT, la comparaison réussit. Les lettres grecques ne sont pas altérées.
Est-ce que je m'y prends mal pour récupérer les données du fichier INI , ou est-ce qu'il est inutile de s'acharner avec un fichier INI et que je dois me contenter d'un fichier texte ?
Je vous remercie de votre avis.
[R] Lecture d'un fichier INI en UTF8 sans BOM
Règles du forum
- Merci de consulter la section "Règles du forum" et plus particulièrement "Règles et Mentions Légales du site autoitscript.fr" avant d'écrire un message.
[R] Lecture d'un fichier INI en UTF8 sans BOM
Modifié en dernier par GMH le dim. 24 janv. 2016 10:23, modifié 1 fois.
- orax
- Modérateur

- Messages : 1479
- Enregistré le : lun. 23 mars 2009 04:50
- Localisation : ::1
- Status : Hors ligne
Re: [..] lecture d'un fichier INI en UTF8 sans BOM
Avec BinaryToString je suppose que ça ira.
On pourrait aussi faire comme ça pour éviter de passer par un fichier externe.
Code : Tout sélectionner
#include <StringConstants.au3>
$r = IniRead("test.ini", "g", "g", "")
MsgBox(0, '', BinaryToString($r, $SB_UTF8))Il faudra changer l'encodage du fichier pour éviter ça. Depuis SciTE, dans File > Encoding.GMH a écrit :Si je tente de construire le tableau des voyelles grecques directement dans mon programme, celles-ci ne s'affichent pas dans mon code. Elles sont remplacées par des points d'interrogation.
On pourrait aussi faire comme ça pour éviter de passer par un fichier externe.
Code : Tout sélectionner
$s = "τοῦτῷ"
$s = StringRegExpReplace($s, "[οῦῷ]", ".")
MsgBox(0, '', $s)De petits détails peuvent faire toute la différence. — Quand la boule de neige commence à rouler… poussez-la. (Columbo)
Re: [R] Lecture d'un fichier INI en UTF8 sans BOM
Merci orax pour vos suggestions.
La fonction BinaryToString($r, 4)) permet parfaitement la récupération des valeurs de mon fichier INI dans le codage UTF8. Mon programme fonctionne à merveille.
Inclure le tableau de voyelles dans le code de mon programme serait moins intéressant, par le fait que je devrais recompiler mon code s'il me venait l'idée d'utiliser mon programme dans le cadre d'une autre langue, comme le russe ou le chinois. Il me paraît plus simple d'éditer simplement le fichier INI. Toutefois, je conserve dans mes archives la possibilité d'encoder de différentes manières mon code.
Je vous remercie beaucoup.
La fonction BinaryToString($r, 4)) permet parfaitement la récupération des valeurs de mon fichier INI dans le codage UTF8. Mon programme fonctionne à merveille.
Inclure le tableau de voyelles dans le code de mon programme serait moins intéressant, par le fait que je devrais recompiler mon code s'il me venait l'idée d'utiliser mon programme dans le cadre d'une autre langue, comme le russe ou le chinois. Il me paraît plus simple d'éditer simplement le fichier INI. Toutefois, je conserve dans mes archives la possibilité d'encoder de différentes manières mon code.
Je vous remercie beaucoup.

