Bonjour,
Après une longue recherche sur internet (Forums, Documentations,...), je me retourne vers vous pour m'aider s'il vous plait .
Pour mon application, j'ai développé un outil d'importation de fichier Excel (.xls) pour charger des données.
Le problème c'est que mes fichiers Excel sont en arabe, ce qui fait lors de l'importation, j'obtiens des '?????????????' au lieu des mots arabes.
Après une recherche, j'ai découvert que le changement ds paramètre régionaux (Panneau de configuration>Région et langue>Format) en Arabe (Algérie), permet de régler le problème.
Je pourrai bien me contenter de cette solution, c'est à dire proposer au client de de faire la manipulation (Changement Arabe (Algérie)), à chaque importation, puis de revenir en français (Changement Français (France)).
Je voudrai savoir s'il existe un moyen pour faire cette manipulation en arrière plan grâce à une fonction dans Delphi7.
Je précise aussi que j'ai trouvé le code suivant, qui fait parfaitement l'affaire sous Windows 7, mais malheureusement, il ne donne pas les même résultats sous Windows 8 :
Procédure pour basculer vers l'arabe (implémenter dans l'application appelante, ou à l'ouverture de l'application)
Procédure pour basculer vers le français (implémenter à la sortie de l'application d'importation)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 procedure langue_ARA(); begin with TRegistry.Create do//arabe try RootKey := HKEY_CURRENT_USER ; OpenKey('Control Panel\International',true); WriteString('iCountry','213'); WriteString('sCountry','Algérie'); WriteString('Locale','00001401'); WriteString('LocaleName', 'ar-DZ'); WriteString('sLanguage','ARG'); CloseKey; finally // Free; end; end;
Merci, je compte sur vous.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 procedure langue_FRA(); begin with TRegistry.Create do//Français try RootKey := HKEY_CURRENT_USER ; OpenKey('Control Panel\International',true); WriteString('iCountry','33'); WriteString('sCountry','France'); WriteString('Locale','0000040C'); WriteString('LocaleName', 'fr-FR'); WriteString('sLanguage','FRA'); CloseKey; finally // Free; end; end;
Partager