• [^] # Re: Quand on n'a qu'un marteau tout ressemble à un clou

    Posté par . En réponse au message Remplacer des cellules. Évalué à 4.

    Donc du coup, les solutions vaporware qui n'existent pas sont mieux que celles proposées?

    Oui, parce que les solutions proposées sont indéboggables et ne relèvent que de bricolages «quick & dirty», le genre de choses que tu utilises quand tu n'as besoin que de faire quelque chose une fois et oublier à jamais. Et encore, il ne faut pas que ça soit quelque chose d'important.

    Ce que le PO souhaite faire, importer deux fichiers csv qui contiennent des données partiellement chevauchantes, chercher un certain pattern dans le deuxième fichier, et remplacer ce pattern sous certaines conditions avec des données du premier fichier. Enfin, il souhaite écrire un csv valide. Tu as vu la quantité de trucs nouveaux qui arrivent à chaque question? «Ah oui, c'est possible que des IDs soient dupliqués», «il est possible que certains ne correspondent pas», etc. Clairement, il faut quelques dizaines de lignes de code dans un vrai langage de script, qui importe les deux fichiers, vérifie s'ils sont valides (bon nombre de colonnes, bons types de données, etc), retire, gère, ou fait quelque chose pour les ID dupliqués ou manquants, éventuellement balance des warnings "Ligne 3251 ID invalide", fait les remplacements souhaités, et génère le fichier valide en sortie.

    Après, on peut discuter éternellement sur l'adéquation d'un outil à faire quelque chose. Si l'argument c'est simplement que c'est possible, alors oui, mais c'est aussi possible en Brainfuck. Si ça doit tenir sur 4 lignes incompréhensibles et illisibles, alors oui, c'est possible, mais il faut faire confiance et c'est du code jetable (c'est peut-être ce qui était demandé, hein). Ça n'est pas comme ça que je ferais, mais j'admet tout à fait que c'est une culture qui existe en info et il faut vivre avec.

    La question, c'est un peu la même que si tu appelles un plombier pour une fuite. Tu as peut-être des mecs qui te collent un chewing-gum sur la fuite, qui foutent un coup de scotch autour et qui scellent au briquet en t'expliquant que ça polymérise le chewing-gum et que tu vois, ça ne fuit plus. En 5 minutes il a fini, et peut-être qu'en effet, ça va tenir 20 ans. Mais il n'y a pas besoin d'être un gourou de la plomberie pour voir que ça n'est pas comme ça qu'on devrait faire. C'est sûr que de couper l'eau, faire des soudures, des tests, en profiter pour changer les joints et consolider au cas où les autres endroits où ça pourrait fuir dans les années qui viennent, ça prend plus de temps et ça coûte plus cher.