Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

[WD5.5 et WD7.5] - utilisation de caractères cyrilliques

18 réponses
Avatar
SFCI Conseil - Alain V
Bonjour à tous

Je développe un programme et j'ai un sérieux souci.

Je reçois un fichier EXCEL créé en Russie. Lorsque je l'ouvre sur ma machine
les caractères cyrilliques s'affiche parfaitement (comme dans tous les
programmes offices et µsoft en général).

Je voudrais lire les chaînes de mes champs EXCEL pour les présenter dans mes
programmes mais je ne me retrouve tj qu'avec des pointes d'interrogations.

J'utilise pour mon champ txt une police UNICODE mais ce n'est pas suffisant.

Quelle procédure utiliser pour au moins obtenir les caractères cyrilliques
(dans une variable, un champ texte, ...).

Merci de votre aide.

Alain V.

10 réponses

1 2
Avatar
Gilles G.
In article <40430ed4$0$22401$,
says...
Bonjour à tous
Je développe un programme et j'ai un sérieux souci.
J'utilise pour mon champ txt une police UNICODE mais ce n'est pas suffisant.



T'as essayé avec un champ RTF?
Avatar
SFCI Conseil - Alain V
Oh OUI !!!

C'est grâce à ça que j'obtiens des "?????...." à la place d'un signe Low
Ascii standard.

Ce serait trop facile.

D'ailleurs c'est grâce au RTF qu'on peut obtenir des variantes de polices
(et faire une simulation de mise en page pour une zone texte).

Merci pour cette réponse mais c'est un peu plus compliqué. A travers
plusieurs NG nous sommes nombreux à vouloir utiliser ce type de "Traduction"
: fichiers créé à l'étranger (pays de langue arabes, asiatique à caractères
non latin, pays de l'Est à caractères cyrilliques et dérivés) dont on doit
prendre les textes dans un OS à caractères latins.

Une méthode existe puisque les logiciels Microsoft (comme Office) le font
bien.

Si tu as d'autres idées te gène pas je suis tj preneurs pour tester.

Alain V

"Gilles G." a écrit dans le message de
news:
In article <40430ed4$0$22401$,
says...
> Bonjour à tous
> Je développe un programme et j'ai un sérieux souci.
> J'utilise pour mon champ txt une police UNICODE mais ce n'est pas


suffisant.

T'as essayé avec un champ RTF?


Avatar
Pierre-Yves TAVERNIER
Bonjour,

En fouillant rapidement dans MSDN, j'ai trouvé cela :

//-----------------------------
National Language Support Functions
The National Language Support (NLS) functions provide support for applications
that use multiple locales at one time, especially applications that support
Automation. Locale information is passed to allow the application to interpret
both the member names and the argument data in the proper locale context. The
information in this appendix applies only to 16 bit Windows systems. On 32-bit
Windows systems, an NLS API is part of the system software.

Implemented by Used by Header filename Import library name
Ole2nls.dll Applications that support multiple national languages Olenls.h
Ole2nls.lib

For Automation, applications need to get locale information and to compare and
transform strings into the proper format for each locale.

A locale is simply user-preference information, represented as a list of values
describing the user's language and sublanguage. National language support
incorporates several disparate definitions of a locale into one coherent model.
This model is designed to be general enough at a low level to support multiple,
distinct, high-level functions, such as the ANSI C locale functions.

A code page is the mapping between character glyphs (shapes) and the 1-byte or 2-
byte numeric values that are used to represent them. Microsoft Windows uses one
of several code pages, depending on the installed localized version of Windows.
For example, the Russian version uses code page 1251 (Cyrillic), while the
English U.S. and Western European versions use code page 1252 (Multilingual).
For historical reasons, the Windows code page in effect is referred to as the
ANSI code page.

Because only one code page is in effect at a time, it is impossible for a
computer running English U.S. Windows to display or print data correctly from
the Cyrillic code page. The fonts do not contain the Cyrillic characters.
However, it can still manipulate the characters internally, and they will
display correctly again if moved back to a machine running Russian Windows.

All NLS functions use the locale identifier (LCID) to identify which code page a
piece of text is assumed to lie in. For example, when returning locale
information (such as month names) for Russian, the returned string can be
meaningfully displayed in the Cyrillic code page only, because other code pages
do not contain the appropriate characters. Similarly, when attempting to change
the case of a string with the Russian locale, the case-mapping rules assume the
characters are in the Cyrillic code page.

These functions can be divided into two categories:

String transformation — NLS functions support uppercasing, lowercasing,
generating sort keys (all locale-dependent), and getting string type information.

Locale manipulation — NLS functions return information about installed locales
for use in string transformations.
For more information on national language support functions, primary and
secondary language identifiers and locale identifiers see Windows Base Services
National Language Support and Locales in the Platform Software Development Kit
(SDK).

//-----

C'est peut être une piste ...

PYT
--
Ce message a été posté via la plateforme Web club-Internet.fr
This message has been posted by the Web platform club-Internet.fr

http://forums.club-internet.fr/
Avatar
Roumegou Eric
SFCI Conseil - Alain V avait prétendu :
Merci pour cette réponse mais c'est un peu plus compliqué. A travers
plusieurs NG nous sommes nombreux à vouloir utiliser ce type de "Traduction"



Sans présumer de la réponse, tu devrais poser ta question sur la ML car
je sais qu'il y a plusieurs intervenants qui travaillent sur des applis
avec des pb d'alphabets et de caractères russes.

--
Eric Roumegou
http://cerbermail.com/?Wk2D8D62KI
(cliquez sur le lien ci-dessus pour me contacter en privé)
Avatar
antoine.info
Pour info, Je crois qu'une nouvelle fonction (changealaphabet) existe
dans la version 8. A confirmer car ce n'est pas mon domaine de
prédilection...

"SFCI Conseil - Alain V" wrote in message news:<404451f5$0$22377$...
Oh OUI !!!

C'est grâce à ça que j'obtiens des "?????...." à la place d'un signe Low
Ascii standard.

Ce serait trop facile.

D'ailleurs c'est grâce au RTF qu'on peut obtenir des variantes de polices
(et faire une simulation de mise en page pour une zone texte).

Merci pour cette réponse mais c'est un peu plus compliqué. A travers
plusieurs NG nous sommes nombreux à vouloir utiliser ce type de "Traduction"
: fichiers créé à l'étranger (pays de langue arabes, asiatique à caractères
non latin, pays de l'Est à caractères cyrilliques et dérivés) dont on doit
prendre les textes dans un OS à caractères latins.

Une méthode existe puisque les logiciels Microsoft (comme Office) le font
bien.

Si tu as d'autres idées te gène pas je suis tj preneurs pour tester.

Alain V

"Gilles G." a écrit dans le message de
news:
> In article <40430ed4$0$22401$,
> says...
> > Bonjour à tous
> > Je développe un programme et j'ai un sérieux souci.
> > J'utilise pour mon champ txt une police UNICODE mais ce n'est pas
suffisant.
>
> T'as essayé avec un champ RTF?


Avatar
SFCI Conseil - Alain V
Slt Antoine

Je confirme : changeAlphabet() existe dans la version 8 selon le ST mais je
doit laisser l'application en 5.5b (trop importante pour que le client paye
le transfert de la 5.5 vers la 7.5 puis la 8) => le client estime que le
surcoût n'est pas acceptable (faut avouer que le projet existe depuis plus
de 5 ans compte aujourd'hui plus d'une centaine de pages avec pas de classe
du RAD).

Alain V

"Antoine" a écrit dans le message de
news:
Pour info, Je crois qu'une nouvelle fonction (changealaphabet) existe
dans la version 8. A confirmer car ce n'est pas mon domaine de
prédilection...

"SFCI Conseil - Alain V" wrote in message


news:<404451f5$0$22377$...
> Oh OUI !!!
>
> C'est grâce à ça que j'obtiens des "?????...." à la place d'un signe Low
> Ascii standard.
>
> Ce serait trop facile.
>
> D'ailleurs c'est grâce au RTF qu'on peut obtenir des variantes de


polices
> (et faire une simulation de mise en page pour une zone texte).
>
> Merci pour cette réponse mais c'est un peu plus compliqué. A travers
> plusieurs NG nous sommes nombreux à vouloir utiliser ce type de


"Traduction"
> : fichiers créé à l'étranger (pays de langue arabes, asiatique à


caractères
> non latin, pays de l'Est à caractères cyrilliques et dérivés) dont on


doit
> prendre les textes dans un OS à caractères latins.
>
> Une méthode existe puisque les logiciels Microsoft (comme Office) le


font
> bien.
>
> Si tu as d'autres idées te gène pas je suis tj preneurs pour tester.
>
> Alain V
>
> "Gilles G." a écrit dans le message de
> news:
> > In article <40430ed4$0$22401$,
> > says...
> > > Bonjour à tous
> > > Je développe un programme et j'ai un sérieux souci.
> > > J'utilise pour mon champ txt une police UNICODE mais ce n'est pas
> suffisant.
> >
> > T'as essayé avec un champ RTF?


Avatar
SFCI Conseil - Alain V
Slt Eric

Pardonne mon ignorance : c'est quoi la ML (tu penses aux NG de PcSoft) ??
J'y suis déjà et les questions fusent plus que les réponses....

Alain V

PS : toutefois les réponses me donnent des hypothèses que je contrôle au fur
et à mesure.


"Roumegou Eric" a écrit dans le message de
news:
SFCI Conseil - Alain V avait prétendu :
> Merci pour cette réponse mais c'est un peu plus compliqué. A travers
> plusieurs NG nous sommes nombreux à vouloir utiliser ce type de


"Traduction"

Sans présumer de la réponse, tu devrais poser ta question sur la ML car
je sais qu'il y a plusieurs intervenants qui travaillent sur des applis
avec des pb d'alphabets et de caractères russes.

--
Eric Roumegou
http://cerbermail.com/?Wk2D8D62KI
(cliquez sur le lien ci-dessus pour me contacter en privé)



Avatar
SFCI Conseil - Alain V
Slt Pierre-Yves

En effet j'ai trouvé des objets OLE mais uniquement des DLL (donc Ole2nls)
sur plusieurs machine (XP HE, 2000Pro et W98).

Comme Windev 5.5 est 16 bits on est sur la bonne voix.

Par contre ma faible connaissance de l'OLE (en 5 ans c'est la première fois
que je doit l'utilisé) m'amène à demander du secours pour savoir comment
l'exploiter avec Windev 5.5.

Toutefois, j'ai un peu de temps maintenant je vais me pencher dessus à la
fin de la semaine.

Merci à tous.

Si qqun d'autres à qqchose je prends.

On avance, on avance.

Alain V

"Pierre-Yves TAVERNIER" a écrit dans le
message de news:

Bonjour,

En fouillant rapidement dans MSDN, j'ai trouvé cela :

//-----------------------------
National Language Support Functions
The National Language Support (NLS) functions provide support for


applications
that use multiple locales at one time, especially applications that


support
Automation. Locale information is passed to allow the application to


interpret
both the member names and the argument data in the proper locale context.


The
information in this appendix applies only to 16 bit Windows systems. On


32-bit
Windows systems, an NLS API is part of the system software.

Implemented by Used by Header filename Import library name
Ole2nls.dll Applications that support multiple national languages Olenls.h
Ole2nls.lib

For Automation, applications need to get locale information and to compare


and
transform strings into the proper format for each locale.

A locale is simply user-preference information, represented as a list of


values
describing the user's language and sublanguage. National language support
incorporates several disparate definitions of a locale into one coherent


model.
This model is designed to be general enough at a low level to support


multiple,
distinct, high-level functions, such as the ANSI C locale functions.

A code page is the mapping between character glyphs (shapes) and the


1-byte or 2-
byte numeric values that are used to represent them. Microsoft Windows


uses one
of several code pages, depending on the installed localized version of


Windows.
For example, the Russian version uses code page 1251 (Cyrillic), while the
English U.S. and Western European versions use code page 1252


(Multilingual).
For historical reasons, the Windows code page in effect is referred to as


the
ANSI code page.

Because only one code page is in effect at a time, it is impossible for a
computer running English U.S. Windows to display or print data correctly


from
the Cyrillic code page. The fonts do not contain the Cyrillic characters.
However, it can still manipulate the characters internally, and they will
display correctly again if moved back to a machine running Russian


Windows.

All NLS functions use the locale identifier (LCID) to identify which code


page a
piece of text is assumed to lie in. For example, when returning locale
information (such as month names) for Russian, the returned string can be
meaningfully displayed in the Cyrillic code page only, because other code


pages
do not contain the appropriate characters. Similarly, when attempting to


change
the case of a string with the Russian locale, the case-mapping rules


assume the
characters are in the Cyrillic code page.

These functions can be divided into two categories:

String transformation — NLS functions support uppercasing, lowercasing,
generating sort keys (all locale-dependent), and getting string type


information.

Locale manipulation — NLS functions return information about installed


locales
for use in string transformations.
For more information on national language support functions, primary and
secondary language identifiers and locale identifiers see Windows Base


Services
National Language Support and Locales in the Platform Software Development


Kit
(SDK).

//-----

C'est peut être une piste ...

PYT
--
Ce message a été posté via la plateforme Web club-Internet.fr
This message has been posted by the Web platform club-Internet.fr

http://forums.club-internet.fr/


Avatar
Roumegou Eric
SFCI Conseil - Alain V a pensé très fort :
Slt Eric

Pardonne mon ignorance : c'est quoi la ML (tu penses aux NG de PcSoft) ??
J'y suis déjà et les questions fusent plus que les réponses....



Sorry pour cette imprécision. Je voulais parler de la Mailing List

Pour tout savoir sur windev-forum... Pour se désabonner...
Une seule adresse : http://www.teaser.fr/~edemeester/wdfaq.htm

Cette ML est relativement active, les gens sont sympas (il y a
plusieurs membres que l'on retrouve aussi ici) bref une autre source
d'information.
En plus, tu peux avoir un soft et récupérer des archives et faire des
recherches off line; ce qui est bien pratique.

Quand aux NG de Pcsoft, je suis d'accord avec toi. Ce qui les dessert,
c'est le différé de publication, la censure quelque fois discutable. Ce
qui est bizarre, c'est qu'on ne retrouve pas vraiment les intervenants
des NG pcsoft ici ou sur la mailing Liste???

et comme on ne peut leur dire "VIENDEZ ! VIENDEZ ici bon sang " ;-)

--
Eric Roumegou
http://cerbermail.com/?Wk2D8D62KI
(cliquez sur le lien ci-dessus pour me contacter en privé)
Avatar
Gégé
> Comme Windev 5.5 est 16 bits on est sur la bonne voix.
Par contre ma faible connaissance de l'OLE



Hum ! Attention l'OLE est en 16 ou 32 bits.
1 2