Saisie directe d'un code de caractère dans une chaîne
7 réponses
Pierre Maurette
Bonjour,
J'édite sous Windows, et parfois la cible est en fenêtre "Invite de
commandes", les jeux de caractères étendus sont différents. Mais la
question porte sur la syntaxe, elle est générale.
Ce que je fais parfois:
#ifdef _OEM_
const char entree[] = "entr,e\n";
#else
const char entree[] = "entrée\n";
#endif
(J'édite le source une fois dans la fenêtre "Invite de commandes" pour
saisir "entr,e"\n", mais je trouve ça un peu bourrin).
Je voudrais rester dans mon éditeur. Ce qui fonctionne:
#ifdef _OEM_
const char entree[] = {'e', 'n', 't', 'r', 0x82, 'e', '\n', 0};
C'est un peu long, si les chaînes le sont. ce que je voudrais faire (à
peu près):
#ifdef _OEM_
const char entree[] = "entr\x82e\n";
Ça ne fonctionne pas comme souhaité. (la sortie est la même que
"entr.\n").
Y a-t-il une solution ?
(je précise que saisir "entr'e\n" sous Windows ne fonctionne
évidemment pas ;-)).
Merci d'avance
--
Pierre
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
Pierre Maurette
Pierre Maurette a écrit:
Bonjour, J'édite sous Windows, et parfois la cible est en fenêtre "Invite de commandes", les jeux de caractères étendus sont différents. Mais la question porte sur la syntaxe, elle est générale.
Ce que je fais parfois: #ifdef _OEM_ const char entree[] = "entr,en"; #else const char entree[] = "entréen"; #endif (J'édite le source une fois dans la fenêtre "Invite de commandes" pour saisir "entr,e"n", mais je trouve ça un peu bourrin).
Je voudrais rester dans mon éditeur. Ce qui fonctionne: #ifdef _OEM_ const char entree[] = {'e', 'n', 't', 'r', 0x82, 'e', 'n', 0};
C'est un peu long, si les chaînes le sont. ce que je voudrais faire (à peu près): #ifdef _OEM_ const char entree[] = "entrx82en";
Ça ne fonctionne pas comme souhaité. (la sortie est la même que "entr.n"). Y a-t-il une solution ? (je précise que saisir "entr'en" sous Windows ne fonctionne évidemment pas ;-)). Ooooops !
(je précise que saisir "entr,en" sous Windows ne fonctionne évidemment pas ;-)). -- Pierre
Pierre Maurette <maurettepierre@wanadoo.fr> a écrit:
Bonjour,
J'édite sous Windows, et parfois la cible est en fenêtre "Invite de
commandes", les jeux de caractères étendus sont différents. Mais la
question porte sur la syntaxe, elle est générale.
Ce que je fais parfois:
#ifdef _OEM_
const char entree[] = "entr,en";
#else
const char entree[] = "entréen";
#endif
(J'édite le source une fois dans la fenêtre "Invite de commandes" pour
saisir "entr,e"n", mais je trouve ça un peu bourrin).
Je voudrais rester dans mon éditeur. Ce qui fonctionne:
#ifdef _OEM_
const char entree[] = {'e', 'n', 't', 'r', 0x82, 'e', 'n', 0};
C'est un peu long, si les chaînes le sont. ce que je voudrais faire (à
peu près):
#ifdef _OEM_
const char entree[] = "entrx82en";
Ça ne fonctionne pas comme souhaité. (la sortie est la même que
"entr.n").
Y a-t-il une solution ?
(je précise que saisir "entr'en" sous Windows ne fonctionne
évidemment pas ;-)).
Ooooops !
(je précise que saisir "entr,en" sous Windows ne fonctionne
évidemment pas ;-)).
--
Pierre
Bonjour, J'édite sous Windows, et parfois la cible est en fenêtre "Invite de commandes", les jeux de caractères étendus sont différents. Mais la question porte sur la syntaxe, elle est générale.
Ce que je fais parfois: #ifdef _OEM_ const char entree[] = "entr,en"; #else const char entree[] = "entréen"; #endif (J'édite le source une fois dans la fenêtre "Invite de commandes" pour saisir "entr,e"n", mais je trouve ça un peu bourrin).
Je voudrais rester dans mon éditeur. Ce qui fonctionne: #ifdef _OEM_ const char entree[] = {'e', 'n', 't', 'r', 0x82, 'e', 'n', 0};
C'est un peu long, si les chaînes le sont. ce que je voudrais faire (à peu près): #ifdef _OEM_ const char entree[] = "entrx82en";
Ça ne fonctionne pas comme souhaité. (la sortie est la même que "entr.n"). Y a-t-il une solution ? (je précise que saisir "entr'en" sous Windows ne fonctionne évidemment pas ;-)). Ooooops !
(je précise que saisir "entr,en" sous Windows ne fonctionne évidemment pas ;-)). -- Pierre
Richard Delorme
Bonjour, J'édite sous Windows, et parfois la cible est en fenêtre "Invite de commandes", les jeux de caractères étendus sont différents. Mais la question porte sur la syntaxe, elle est générale.
Ce que je fais parfois: #ifdef _OEM_ const char entree[] = "entr,en"; #else const char entree[] = "entréen"; #endif (J'édite le source une fois dans la fenêtre "Invite de commandes" pour saisir "entr,e"n", mais je trouve ça un peu bourrin).
Je voudrais rester dans mon éditeur. Ce qui fonctionne: #ifdef _OEM_ const char entree[] = {'e', 'n', 't', 'r', 0x82, 'e', 'n', 0};
C'est un peu long, si les chaînes le sont. ce que je voudrais faire (à peu près): #ifdef _OEM_ const char entree[] = "entrx82en";
Le problème est que e est un chiffre héxadécimal, et qu'il lit 0x82e. Les parades existent :
Bonjour,
J'édite sous Windows, et parfois la cible est en fenêtre "Invite de
commandes", les jeux de caractères étendus sont différents. Mais la
question porte sur la syntaxe, elle est générale.
Ce que je fais parfois:
#ifdef _OEM_
const char entree[] = "entr,en";
#else
const char entree[] = "entréen";
#endif
(J'édite le source une fois dans la fenêtre "Invite de commandes" pour
saisir "entr,e"n", mais je trouve ça un peu bourrin).
Je voudrais rester dans mon éditeur. Ce qui fonctionne:
#ifdef _OEM_
const char entree[] = {'e', 'n', 't', 'r', 0x82, 'e', 'n', 0};
C'est un peu long, si les chaînes le sont. ce que je voudrais faire (à
peu près):
#ifdef _OEM_
const char entree[] = "entrx82en";
Le problème est que e est un chiffre héxadécimal, et qu'il lit 0x82e.
Les parades existent :
Bonjour, J'édite sous Windows, et parfois la cible est en fenêtre "Invite de commandes", les jeux de caractères étendus sont différents. Mais la question porte sur la syntaxe, elle est générale.
Ce que je fais parfois: #ifdef _OEM_ const char entree[] = "entr,en"; #else const char entree[] = "entréen"; #endif (J'édite le source une fois dans la fenêtre "Invite de commandes" pour saisir "entr,e"n", mais je trouve ça un peu bourrin).
Je voudrais rester dans mon éditeur. Ce qui fonctionne: #ifdef _OEM_ const char entree[] = {'e', 'n', 't', 'r', 0x82, 'e', 'n', 0};
C'est un peu long, si les chaînes le sont. ce que je voudrais faire (à peu près): #ifdef _OEM_ const char entree[] = "entrx82en";
Le problème est que e est un chiffre héxadécimal, et qu'il lit 0x82e. Les parades existent :
Bonjour, J'édite sous Windows, et parfois la cible est en fenêtre "Invite de commandes", les jeux de caractères étendus sont différents. Mais la question porte sur la syntaxe, elle est générale.
Ce que je fais parfois: #ifdef _OEM_ const char entree[] = "entr,en"; #else const char entree[] = "entréen"; #endif (J'édite le source une fois dans la fenêtre "Invite de commandes" pour saisir "entr,e"n", mais je trouve ça un peu bourrin).
Je voudrais rester dans mon éditeur. Ce qui fonctionne: #ifdef _OEM_ const char entree[] = {'e', 'n', 't', 'r', 0x82, 'e', 'n', 0};
C'est un peu long, si les chaînes le sont. ce que je voudrais faire (à peu près): #ifdef _OEM_ const char entree[] = "entrx82en";
Le problème est que e est un chiffre héxadécimal, et qu'il lit 0x82e. Les parades existent :
const char entree[] = "entrx82" "en"; Youpi, ça ka maché !
Fatalement, on peut également faire: const char entree[] = "entrx82x65n"; (ça fait un peu bricolage, tout rentre dans l'ordre quand on tombe sur autre chose que a,b,c,d,e,f,A,B,C,D,E,F,0,1,2,3,4,5,6,7,8,9)
ou const char entree[] = "entru0082en"; Ça, c'est pour les wchar et l'UTF-16 ?
Merci, -- Pierre
Richard Delorme <abulmo@nospam.fr> a écrit:
Bonjour,
J'édite sous Windows, et parfois la cible est en fenêtre "Invite de
commandes", les jeux de caractères étendus sont différents. Mais la
question porte sur la syntaxe, elle est générale.
Ce que je fais parfois:
#ifdef _OEM_
const char entree[] = "entr,en";
#else
const char entree[] = "entréen";
#endif
(J'édite le source une fois dans la fenêtre "Invite de commandes" pour
saisir "entr,e"n", mais je trouve ça un peu bourrin).
Je voudrais rester dans mon éditeur. Ce qui fonctionne:
#ifdef _OEM_
const char entree[] = {'e', 'n', 't', 'r', 0x82, 'e', 'n', 0};
C'est un peu long, si les chaînes le sont. ce que je voudrais faire (à
peu près):
#ifdef _OEM_
const char entree[] = "entrx82en";
Le problème est que e est un chiffre héxadécimal, et qu'il lit 0x82e.
Les parades existent :
const char entree[] = "entrx82" "en";
Youpi, ça ka maché !
Fatalement, on peut également faire:
const char entree[] = "entrx82x65n";
(ça fait un peu bricolage, tout rentre dans l'ordre quand on tombe sur
autre chose que a,b,c,d,e,f,A,B,C,D,E,F,0,1,2,3,4,5,6,7,8,9)
ou
const char entree[] = "entru0082en";
Ça, c'est pour les wchar et l'UTF-16 ?
Bonjour, J'édite sous Windows, et parfois la cible est en fenêtre "Invite de commandes", les jeux de caractères étendus sont différents. Mais la question porte sur la syntaxe, elle est générale.
Ce que je fais parfois: #ifdef _OEM_ const char entree[] = "entr,en"; #else const char entree[] = "entréen"; #endif (J'édite le source une fois dans la fenêtre "Invite de commandes" pour saisir "entr,e"n", mais je trouve ça un peu bourrin).
Je voudrais rester dans mon éditeur. Ce qui fonctionne: #ifdef _OEM_ const char entree[] = {'e', 'n', 't', 'r', 0x82, 'e', 'n', 0};
C'est un peu long, si les chaînes le sont. ce que je voudrais faire (à peu près): #ifdef _OEM_ const char entree[] = "entrx82en";
Le problème est que e est un chiffre héxadécimal, et qu'il lit 0x82e. Les parades existent :
const char entree[] = "entrx82" "en"; Youpi, ça ka maché !
Fatalement, on peut également faire: const char entree[] = "entrx82x65n"; (ça fait un peu bricolage, tout rentre dans l'ordre quand on tombe sur autre chose que a,b,c,d,e,f,A,B,C,D,E,F,0,1,2,3,4,5,6,7,8,9)
ou const char entree[] = "entru0082en"; Ça, c'est pour les wchar et l'UTF-16 ?
Merci, -- Pierre
Antoine Leca
En , Pierre Maurette va escriure:
const char entree[] = "entrx82" "en";
Plus long mais un poil plus lisible
#define eaigu "x82"
const char entree[] = "entr" eaigu "en";
(On peut aussi coller plus à SGML et écrire eacute ;-))
ou const char entree[] = "entru0082en"; Ça, c'est pour les wchar et l'UTF-16 ?
Non, mais c'est exclusivement C99, et il y a pas mal de chance (sous Windows) pour que cela ne fonctionne pas...
La version pour les wchar (qui est C90, d'ailleurs, mais les versions les plus anciennes, disons <95, des compilos de Borland sont un peu bornées) serait :
const wchar_t entree[] = L"entrxE9" L"en";
Et on retrouve le même problème qu'en 8 bits (avec en plus la nécessité d'ajouter un second L, ce qui fait que cela devient très ch***t, surtout quand on utilise ma variante; C99 donne la possibilité d'omettre le second L, mais encore une fois, il faut avoir le compilo qui va bien).
Antoine
En 5hmui0tp46ghre42u9mmpc5ppgliddnt8e@4ax.com, Pierre Maurette va escriure:
const char entree[] = "entrx82" "en";
Plus long mais un poil plus lisible
#define eaigu "x82"
const char entree[] = "entr" eaigu "en";
(On peut aussi coller plus à SGML et écrire eacute ;-))
ou
const char entree[] = "entru0082en";
Ça, c'est pour les wchar et l'UTF-16 ?
Non, mais c'est exclusivement C99, et il y a pas mal de chance (sous
Windows) pour que cela ne fonctionne pas...
La version pour les wchar (qui est C90, d'ailleurs, mais les versions les
plus anciennes, disons <95, des compilos de Borland sont un peu bornées)
serait :
const wchar_t entree[] = L"entrxE9" L"en";
Et on retrouve le même problème qu'en 8 bits (avec en plus la nécessité
d'ajouter un second L, ce qui fait que cela devient très ch***t, surtout
quand on utilise ma variante; C99 donne la possibilité d'omettre le second
L, mais encore une fois, il faut avoir le compilo qui va bien).
(On peut aussi coller plus à SGML et écrire eacute ;-))
ou const char entree[] = "entru0082en"; Ça, c'est pour les wchar et l'UTF-16 ?
Non, mais c'est exclusivement C99, et il y a pas mal de chance (sous Windows) pour que cela ne fonctionne pas...
La version pour les wchar (qui est C90, d'ailleurs, mais les versions les plus anciennes, disons <95, des compilos de Borland sont un peu bornées) serait :
const wchar_t entree[] = L"entrxE9" L"en";
Et on retrouve le même problème qu'en 8 bits (avec en plus la nécessité d'ajouter un second L, ce qui fait que cela devient très ch***t, surtout quand on utilise ma variante; C99 donne la possibilité d'omettre le second L, mais encore une fois, il faut avoir le compilo qui va bien).
Antoine
Pierre Maurette
"Antoine Leca" a écrit:
En , Pierre Maurette va escriure:
const char entree[] = "entrx82" "en";
Plus long mais un poil plus lisible
#define eaigu "x82"
const char entree[] = "entr" eaigu "en";
(On peut aussi coller plus à SGML et écrire eacute ;-)) J'avais fait quelques tentatives dans ce sens. J'avais même tenté un
calamiteux: const char[] verb_etre = "blabla";
const char entree[] = "entru0082en"; Ça, c'est pour les wchar et l'UTF-16 ?
Non, mais c'est exclusivement C99, et il y a pas mal de chance (sous Windows) pour que cela ne fonctionne pas... Je confirme, mais sans que ça ne prouve quoi que ce soit: la seule
copie de norme C que j'ai est la C99, et je n'ai aucun compilo C99 ! Peut-être gcc 3.4.1 ? En tout cas, la preview du Borland 6.0 ne fonctionne absolument pas. Je me pose la question sérieusement: adopter C99 est-il une démarche vers la portabilité ?
Pour être pragmatique, j'ai adoté une autre méthode: * #include "chaines.h"
/* * chaines.h * * Constantes chaînes de caractères, * à éditer dans les environnements cibles * * Constantes chanes de caractres, * diter dans les environnements cibles */
#ifdef _OEM_ /* A diter "sous DOS" */ const char str_usage[] "La ligne de commande doit tre exactement: n TestC <source> <snip> const char str_ErrIn[] = "entren"; const char str_ErrOut[] = "sortien"; const char str_longues_lignes[] "Il a été dtect %d ligne(s) trop longue(s)"; #else /* A éditer "sous Windows" */ const char str_usage[] "La ligne de commande doit être exactement: n TestC <source> <snip> const char str_ErrIn[] = "entréen"; const char str_ErrOut[] = "sortien"; const char str_longues_lignes[] "Il a été détecté %d ligne(s) trop longue(s)"; #endif /* _OEM_ */ #endif /* chaines_H */
<chaines.h>
C'est assez pratique. J'ouvre de temps en temps une fenêtre "Invite de commade" et je fais: edit chaines.h
J'aurais pu faire chainesWin.h et chainesOEM.h, mais c'est plus compliqué à synchroniser. Je vais voir si j'ai quelque chose de simple en utilisant des .rc -- Pierre
"Antoine Leca" <root@localhost.gov> a écrit:
En 5hmui0tp46ghre42u9mmpc5ppgliddnt8e@4ax.com, Pierre Maurette va escriure:
const char entree[] = "entrx82" "en";
Plus long mais un poil plus lisible
#define eaigu "x82"
const char entree[] = "entr" eaigu "en";
(On peut aussi coller plus à SGML et écrire eacute ;-))
J'avais fait quelques tentatives dans ce sens. J'avais même tenté un
calamiteux:
const char[] verb_etre = "blabla";
const char entree[] = "entru0082en";
Ça, c'est pour les wchar et l'UTF-16 ?
Non, mais c'est exclusivement C99, et il y a pas mal de chance (sous
Windows) pour que cela ne fonctionne pas...
Je confirme, mais sans que ça ne prouve quoi que ce soit: la seule
copie de norme C que j'ai est la C99, et je n'ai aucun compilo C99 !
Peut-être gcc 3.4.1 ? En tout cas, la preview du Borland 6.0 ne
fonctionne absolument pas.
Je me pose la question sérieusement: adopter C99 est-il une démarche
vers la portabilité ?
Pour être pragmatique, j'ai adoté une autre méthode:
*
#include "chaines.h"
/*
* chaines.h
*
* Constantes chaînes de caractères,
* à éditer dans les environnements cibles
*
* Constantes chanes de caractres,
* diter dans les environnements cibles
*/
#ifdef _OEM_
/* A diter "sous DOS" */
const char str_usage[] "La ligne de commande doit tre
exactement: n TestC <source>
<snip>
const char str_ErrIn[] = "entren";
const char str_ErrOut[] = "sortien";
const char str_longues_lignes[] "Il a été dtect %d ligne(s) trop longue(s)";
#else
/* A éditer "sous Windows" */
const char str_usage[] "La ligne de commande doit être
exactement: n TestC <source>
<snip>
const char str_ErrIn[] = "entréen";
const char str_ErrOut[] = "sortien";
const char str_longues_lignes[] "Il a été détecté %d ligne(s) trop longue(s)";
#endif /* _OEM_ */
#endif /* chaines_H */
<chaines.h>
C'est assez pratique. J'ouvre de temps en temps une fenêtre "Invite de
commade" et je fais:
edit chaines.h
J'aurais pu faire chainesWin.h et chainesOEM.h, mais c'est plus
compliqué à synchroniser. Je vais voir si j'ai quelque chose de simple
en utilisant des .rc
--
Pierre
(On peut aussi coller plus à SGML et écrire eacute ;-)) J'avais fait quelques tentatives dans ce sens. J'avais même tenté un
calamiteux: const char[] verb_etre = "blabla";
const char entree[] = "entru0082en"; Ça, c'est pour les wchar et l'UTF-16 ?
Non, mais c'est exclusivement C99, et il y a pas mal de chance (sous Windows) pour que cela ne fonctionne pas... Je confirme, mais sans que ça ne prouve quoi que ce soit: la seule
copie de norme C que j'ai est la C99, et je n'ai aucun compilo C99 ! Peut-être gcc 3.4.1 ? En tout cas, la preview du Borland 6.0 ne fonctionne absolument pas. Je me pose la question sérieusement: adopter C99 est-il une démarche vers la portabilité ?
Pour être pragmatique, j'ai adoté une autre méthode: * #include "chaines.h"
/* * chaines.h * * Constantes chaînes de caractères, * à éditer dans les environnements cibles * * Constantes chanes de caractres, * diter dans les environnements cibles */
#ifdef _OEM_ /* A diter "sous DOS" */ const char str_usage[] "La ligne de commande doit tre exactement: n TestC <source> <snip> const char str_ErrIn[] = "entren"; const char str_ErrOut[] = "sortien"; const char str_longues_lignes[] "Il a été dtect %d ligne(s) trop longue(s)"; #else /* A éditer "sous Windows" */ const char str_usage[] "La ligne de commande doit être exactement: n TestC <source> <snip> const char str_ErrIn[] = "entréen"; const char str_ErrOut[] = "sortien"; const char str_longues_lignes[] "Il a été détecté %d ligne(s) trop longue(s)"; #endif /* _OEM_ */ #endif /* chaines_H */
<chaines.h>
C'est assez pratique. J'ouvre de temps en temps une fenêtre "Invite de commade" et je fais: edit chaines.h
J'aurais pu faire chainesWin.h et chainesOEM.h, mais c'est plus compliqué à synchroniser. Je vais voir si j'ai quelque chose de simple en utilisant des .rc -- Pierre
Jean-Marc Bourguet
Pierre Maurette writes:
J'aurais pu faire chainesWin.h et chainesOEM.h, mais c'est plus compliqué à synchroniser.
J'aurais bien vu un petit programme faisant la transformation automatiquement.
A+
-- Jean-Marc FAQ de fclc: http://www.isty-info.uvsq.fr/~rumeau/fclc Site de usenet-fr: http://www.usenet-fr.news.eu.org
Pierre Maurette <maurettepierre@wanadoo.fr> writes:
J'aurais pu faire chainesWin.h et chainesOEM.h, mais c'est plus
compliqué à synchroniser.
J'aurais bien vu un petit programme faisant la transformation
automatiquement.
A+
--
Jean-Marc
FAQ de fclc: http://www.isty-info.uvsq.fr/~rumeau/fclc
Site de usenet-fr: http://www.usenet-fr.news.eu.org
J'aurais pu faire chainesWin.h et chainesOEM.h, mais c'est plus compliqué à synchroniser.
J'aurais bien vu un petit programme faisant la transformation automatiquement.
A+
-- Jean-Marc FAQ de fclc: http://www.isty-info.uvsq.fr/~rumeau/fclc Site de usenet-fr: http://www.usenet-fr.news.eu.org
Antoine Leca
[ Fait faire rugir les passerelles, moi... Et en plus, c'est plutôt HS ]
En , Pierre Maurette va escriure:
C'est assez pratique. J'ouvre de temps en temps une fenêtre "Invite de commade" et je fais: edit chaines.h
Hmmm... Tu es sous Win32, exact ? Regarde si tu peux mettre la main sur un portage de sed (n'importe quelle version: j'en ai une de 49K); Ensuite lis la doc (http://www.freebsd.org/cgi/man.cgi?query=sed&apropos=0&sektion=0&manpath=Un ix+Seventh+Edition&format=html), en particulier la commande y/source-cars/cars-remplacement/... y/.f?,S/àâçéè/. Pour le oe, il faut utiliser s/// sur deux lignes différentes, une pour la minuscule, l'autre pour la majuscule. Idem si tu veux traiter UTF-8 ou HTML.
Évidemment, perl, awk, etc., font cela très bien aussi. Il y a même un utilitaire Unix, tr, qui ne fait QUE cela (la commande y): http://www.freebsd.org/cgi/man.cgi?query=tr&apropos=0&sektion=0&manpath=Unix +Seventh+Edition&format=html; mais il est un peu plus difficile à trouver pour Win32 (et c'est un filtre).
Antoine
[ Fait faire rugir les passerelles, moi... Et en plus, c'est plutôt HS ]
En vec8j05pqp161ddjbctvu7nr714vcse5al@4ax.com, Pierre Maurette va escriure:
C'est assez pratique. J'ouvre de temps en temps une fenêtre "Invite de
commade" et je fais:
edit chaines.h
Hmmm... Tu es sous Win32, exact ? Regarde si tu peux mettre la main sur un
portage de sed (n'importe quelle version: j'en ai une de 49K); Ensuite lis
la doc
(http://www.freebsd.org/cgi/man.cgi?query=sed&apropos=0&sektion=0&manpath=Un
ix+Seventh+Edition&format=html), en particulier la commande
y/source-cars/cars-remplacement/... y/.f?,S/àâçéè/. Pour le oe, il faut
utiliser s/// sur deux lignes différentes, une pour la minuscule, l'autre
pour la majuscule. Idem si tu veux traiter UTF-8 ou HTML.
Évidemment, perl, awk, etc., font cela très bien aussi. Il y a même un
utilitaire Unix, tr, qui ne fait QUE cela (la commande y):
http://www.freebsd.org/cgi/man.cgi?query=tr&apropos=0&sektion=0&manpath=Unix
+Seventh+Edition&format=html; mais il est un peu plus difficile à trouver
pour Win32 (et c'est un filtre).
[ Fait faire rugir les passerelles, moi... Et en plus, c'est plutôt HS ]
En , Pierre Maurette va escriure:
C'est assez pratique. J'ouvre de temps en temps une fenêtre "Invite de commade" et je fais: edit chaines.h
Hmmm... Tu es sous Win32, exact ? Regarde si tu peux mettre la main sur un portage de sed (n'importe quelle version: j'en ai une de 49K); Ensuite lis la doc (http://www.freebsd.org/cgi/man.cgi?query=sed&apropos=0&sektion=0&manpath=Un ix+Seventh+Edition&format=html), en particulier la commande y/source-cars/cars-remplacement/... y/.f?,S/àâçéè/. Pour le oe, il faut utiliser s/// sur deux lignes différentes, une pour la minuscule, l'autre pour la majuscule. Idem si tu veux traiter UTF-8 ou HTML.
Évidemment, perl, awk, etc., font cela très bien aussi. Il y a même un utilitaire Unix, tr, qui ne fait QUE cela (la commande y): http://www.freebsd.org/cgi/man.cgi?query=tr&apropos=0&sektion=0&manpath=Unix +Seventh+Edition&format=html; mais il est un peu plus difficile à trouver pour Win32 (et c'est un filtre).