Je travaille dans un petit studio de développement où tous les programmeurs sont regroupés ensemble dans la même pièce et où les postes de travail sont seulement séparés par des murets. Donc on entend tout le monde taper au clavier, ce qui donne parfois une bonne idée de l'occupation de chacun et de la nature du travail effectué.
Mais les programmeurs n'écrivent pas toujours du code. De temps à autre, ils reçoivent un fichier de données de la part du client dans le but de l'importer dans un système. Et plus souvent qu'autrement, le fichier est mal formaté et on doit le préparer pour lui donner une forme standard.
Par exemple, prenons l'échantillon suivant qui comprend un champ par ligne :
##champ1##
##champ2##
##champ3##
...
##champ50##
Si je souhaite en faire une entrée CSV, je connais plusieurs programmeurs qui positionneront le curseur à la fin de la première ligne et qui s'acharneront sur la suite de touches DEL, ",", ESPACE, END pour obtenir comme résultat quelque chose qui ressemble à ceci (sur une même ligne) :
##champ1##, ##champ2##, ##champ3##, ..., ##champ50##
On s'en rend compte si on porte attention au son car ça produit un beau vacarme rythmé qui s'étire selon le nombre d'enregistrements que comprend le fichier. Et une fois de temps en temps, on peut noter un arrêt (pour corriger une erreur dans la séquence) et le pattern reprend de plus belle.
Pourtant, si on se fie à la loi universelle disant qu'un programmeur se doit d'être paresseux et d'automatiser les tâches les plus ennuyantes, il devrait normalement avoir recours aux expressions régulières (regexp).
D'abord, vous devez vous assurer que votre éditeur supporte les remplacements par regex (Dreamweaver, Netbeans, NotePad++ et Eclipse, pour ne nommer que ceux-là, en ont un). Sinon, il est toujours temps de changer.
Dans NetBeans, ouvrez le fichier de données. Ensuite faites CTRL+H et cochez Regular Expressions.
Find what : (##.*##)\n
Replace with : $1,
Cliquez sur le bouton Replace All. Il suffira ensuite de retirer manuellement la dernière virgule de la liste. C'est simple, efficace, silencieux et ça m'évite de monter le son de ma musique dans mon casque d'écoute lorsque j'en entends un qui s'énerve avec son clavier. Ça m'a fait du bien d'en parler, bonne soirée :-)
P.s. c'est probablement la première neige de la saison qui tombe sur Montréal qui joue sur mon humeur...
lundi 30 novembre 2009
0 réponse à "Utilise les regex avant que je vire fou !"
S'abonner à :
Publier des commentaires (Atom)