je voudrais savoir si il est possible de concatener des chaines au
niveau du préprocesseur.
je m'explique
je me trouve a devoir écrire un pattern d'expression régulière assez
^complexe. plutôt que d'écrire un truc du genre
#define CHRO_PATTERN "^([[:alnum:]-]+)(_[[:alpha:]]*)?[.]([[:alpha:]]{1})[[:alnum:]]*_([[:alpha:]]{1}[[:digit:]]{2})_([[:digit:]]{2,3})[.]txt"
je'aurais aimer pour des raisons de lisibilité et de maitenance pouvoir
faire un truc du genre
existe-t il une astuce pour faire ce genre de gymnastique ??
Eric
PS: pour le momment je le fais de manière dynamique, ce qui implique un
calcul de taille, un malloc et son free associé et un snprintf
--
> Quelqu'un aurait-il une solution pour réinitialiser un MBR
Si tu veux qu'il soit complètement blanc (pas souhaitable, à mon avis) :
dd if=/dev/zero of=/dev/hda bs=512k count=1 (sous Linux)
-+- OT in Guide du linuxien (très) pervers - "Pour les K difficiles" -+-
"A" "B" == "AB". Partant de là: pattern = "^" CHRO_CHAMPS1 CHRO_CHAMPS2 "?[.]" CHRO_CHAMPS3 ...
devrait marcher...
-- Erwann ABALEA - RSA PGP Key ID: 0x2D0EABD5 ----- It's okay to call someone stupid; just don't prove it.
Targeur fou
Eric Deveaud wrote:
Bonjour,
Bonjour,
je voudrais savoir si il est possible de concatener des chaines au niveau du préprocesseur.
oui.
je m'explique
je me trouve a devoir écrire un pattern d'expression régulière assez ^complexe. plutôt que d'écrire un truc du genre #define CHRO_PATTERN "^([[:alnum:]-]+)(_[[:alpha:]]*)?[.]([[:alpha:]]{1})[[:alnum:]]*_([[:alpha:]]{1}[[:digit:]]{2})_([[:digit:]]{2,3})[.]txt"
je'aurais aimer pour des raisons de lisibilité et de maitenance pouvoir faire un truc du genre
existe-t il une astuce pour faire ce genre de gymnastique ??
Enlever les +. Si tu souhaites conserver les + pour la lisibilité, tu ne pourras pas le faire en C, et là, c'est vrai, on se dit que le type std::string en C++ est bien sympathique.
Eric
PS: pour le momment je le fais de manière dynamique, ce qui implique un calcul de taille, un malloc et son free associé et un snprintf
Un autre avantage que tu peux tirer de la solution péprocesseur, outre l'économie de malloc/free et de sprintf, est de qualifier ta variable pattern ou ce qui est pointé avec const.
je voudrais savoir si il est possible de concatener des chaines au
niveau du préprocesseur.
oui.
je m'explique
je me trouve a devoir écrire un pattern d'expression régulière assez
^complexe. plutôt que d'écrire un truc du genre
#define CHRO_PATTERN "^([[:alnum:]-]+)(_[[:alpha:]]*)?[.]([[:alpha:]]{1})[[:alnum:]]*_([[:alpha:]]{1}[[:digit:]]{2})_([[:digit:]]{2,3})[.]txt"
je'aurais aimer pour des raisons de lisibilité et de maitenance pouvoir
faire un truc du genre
existe-t il une astuce pour faire ce genre de gymnastique ??
Enlever les +. Si tu souhaites conserver les + pour la lisibilité, tu ne
pourras pas le faire en C, et là, c'est vrai, on se dit que le type
std::string en C++ est bien sympathique.
Eric
PS: pour le momment je le fais de manière dynamique, ce qui implique un
calcul de taille, un malloc et son free associé et un snprintf
Un autre avantage que tu peux tirer de la solution péprocesseur, outre
l'économie de malloc/free et de sprintf, est de qualifier ta variable
pattern ou ce qui est pointé avec const.
je voudrais savoir si il est possible de concatener des chaines au niveau du préprocesseur.
oui.
je m'explique
je me trouve a devoir écrire un pattern d'expression régulière assez ^complexe. plutôt que d'écrire un truc du genre #define CHRO_PATTERN "^([[:alnum:]-]+)(_[[:alpha:]]*)?[.]([[:alpha:]]{1})[[:alnum:]]*_([[:alpha:]]{1}[[:digit:]]{2})_([[:digit:]]{2,3})[.]txt"
je'aurais aimer pour des raisons de lisibilité et de maitenance pouvoir faire un truc du genre
existe-t il une astuce pour faire ce genre de gymnastique ??
Enlever les +. Si tu souhaites conserver les + pour la lisibilité, tu ne pourras pas le faire en C, et là, c'est vrai, on se dit que le type std::string en C++ est bien sympathique.
Eric
PS: pour le momment je le fais de manière dynamique, ce qui implique un calcul de taille, un malloc et son free associé et un snprintf
Un autre avantage que tu peux tirer de la solution péprocesseur, outre l'économie de malloc/free et de sprintf, est de qualifier ta variable pattern ou ce qui est pointé avec const.