Je voudrais que mon code accepte aussi les stream UNICODE.
j'ai un composant qui ecrit des donnees dans un ostream.
void MyComponent::write(ostream mystream);
Ainsi, si je veux ecrire dans un fichier je lui passe une instance d'un
ofstream. Cet ofstream ouvre un fichier avec sa method "open" dont le
prototype est le suivant:
void open(const char *s, ios_base::openmode mode = ios_base::out |
ios_base::trunc);
Jusque la, tout va bien...
maintenant je voudrais trouver un stream similaire - utilisable avec ma
methode "write" (c'est a dire qui herite de "ostream") - et qui puisse
m'ouvrir un fichier dont le nom serait UNICODE (utile si mon composant
est utilise sur un ordinateur japonnais ;-)).
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
kanze
Philippe Mesmeur wrote in message news:...
Je voudrais que mon code accepte aussi les stream UNICODE.
j'ai un composant qui ecrit des donnees dans un ostream.
void MyComponent::write(ostream mystream);
Ainsi, si je veux ecrire dans un fichier je lui passe une instance d'un ofstream. Cet ofstream ouvre un fichier avec sa method "open" dont le prototype est le suivant:
maintenant je voudrais trouver un stream similaire - utilisable avec ma methode "write" (c'est a dire qui herite de "ostream") - et qui puisse m'ouvrir un fichier dont le nom serait UNICODE (utile si mon composant est utilise sur un ordinateur japonnais ;-)).
Impossible en C++, au moins de façon portable.
Mais en fait, aussi, quel Unicode ? Je ne connais pas d'ordinateur qui supporte les noms de fichiers en USC-4, c-à-d Unicode proprement dit. La plupart des systèmes que je connais (mais pas Windows, d'après ce que j'ai entendu dire) permet UTF-8. (Supporter conviendrait dans ce cas seulement dans sa signification de tolérer.) C'est aussi ce qui sert pour transmettre Unicode sur le réseau. Windows supporte UTF-16, je crois ; c'est une autre façon d'encode une représentation de Unicode.
En ce qui concerne le C++, par définition, toute communication avec le système se fait au moyen des « bytes », c-à-d des types char ou unsigned char.
-- James Kanze GABI Software mailto: Conseils en informatique orientée objet/ http://www.gabi-soft.fr Beratung in objektorientierter Datenverarbeitung 11 rue de Rambouillet, 78460 Chevreuse, France, +33 (0)1 30 23 45 16
Philippe Mesmeur <pmes@ocegr.fr> wrote in message
news:<3FE097B3.6060905@ocegr.fr>...
Je voudrais que mon code accepte aussi les stream UNICODE.
j'ai un composant qui ecrit des donnees dans un ostream.
void MyComponent::write(ostream mystream);
Ainsi, si je veux ecrire dans un fichier je lui passe une instance
d'un ofstream. Cet ofstream ouvre un fichier avec sa method "open"
dont le prototype est le suivant:
maintenant je voudrais trouver un stream similaire - utilisable avec
ma methode "write" (c'est a dire qui herite de "ostream") - et qui
puisse m'ouvrir un fichier dont le nom serait UNICODE (utile si mon
composant est utilise sur un ordinateur japonnais ;-)).
Impossible en C++, au moins de façon portable.
Mais en fait, aussi, quel Unicode ? Je ne connais pas d'ordinateur qui
supporte les noms de fichiers en USC-4, c-à-d Unicode proprement dit. La
plupart des systèmes que je connais (mais pas Windows, d'après ce que
j'ai entendu dire) permet UTF-8. (Supporter conviendrait dans ce cas
seulement dans sa signification de tolérer.) C'est aussi ce qui sert
pour transmettre Unicode sur le réseau. Windows supporte UTF-16, je
crois ; c'est une autre façon d'encode une représentation de Unicode.
En ce qui concerne le C++, par définition, toute communication avec le
système se fait au moyen des « bytes », c-à-d des types char ou unsigned
char.
--
James Kanze GABI Software mailto:kanze@gabi-soft.fr
Conseils en informatique orientée objet/ http://www.gabi-soft.fr
Beratung in objektorientierter Datenverarbeitung
11 rue de Rambouillet, 78460 Chevreuse, France, +33 (0)1 30 23 45 16
Je voudrais que mon code accepte aussi les stream UNICODE.
j'ai un composant qui ecrit des donnees dans un ostream.
void MyComponent::write(ostream mystream);
Ainsi, si je veux ecrire dans un fichier je lui passe une instance d'un ofstream. Cet ofstream ouvre un fichier avec sa method "open" dont le prototype est le suivant:
maintenant je voudrais trouver un stream similaire - utilisable avec ma methode "write" (c'est a dire qui herite de "ostream") - et qui puisse m'ouvrir un fichier dont le nom serait UNICODE (utile si mon composant est utilise sur un ordinateur japonnais ;-)).
Impossible en C++, au moins de façon portable.
Mais en fait, aussi, quel Unicode ? Je ne connais pas d'ordinateur qui supporte les noms de fichiers en USC-4, c-à-d Unicode proprement dit. La plupart des systèmes que je connais (mais pas Windows, d'après ce que j'ai entendu dire) permet UTF-8. (Supporter conviendrait dans ce cas seulement dans sa signification de tolérer.) C'est aussi ce qui sert pour transmettre Unicode sur le réseau. Windows supporte UTF-16, je crois ; c'est une autre façon d'encode une représentation de Unicode.
En ce qui concerne le C++, par définition, toute communication avec le système se fait au moyen des « bytes », c-à-d des types char ou unsigned char.
-- James Kanze GABI Software mailto: Conseils en informatique orientée objet/ http://www.gabi-soft.fr Beratung in objektorientierter Datenverarbeitung 11 rue de Rambouillet, 78460 Chevreuse, France, +33 (0)1 30 23 45 16