Coucou ! I'm back !
Tout d'abord je dépose ici la version 1.6.1 de DFEXEEdt, débarrassée du bug lamentable dans la fonction Replace qui a sauté aux yeux de Porygon en quelques instants et qui m'a échappé tellement j'étais content de la mise au point de la fonction Replace All écrite en dernier et qui pour sa part fonctionnait parfaitement. J'ai fait cette fois-ci un peu plus de test, ça devrait aller, mais je reste humble, tout développeur sait que le bug est toujours pendu au dessus de sa tête et tombera au moment où il s'y attend le moins.
Mais foin de tout cela, ce n'est pas la correction de DFEXEEdt qui m'amène ici ce soir.
Ce qui m'amène, c'est ce qui me trottait dans la tête depuis une dizaine de jours et dont l'évolution de DFEXEEDT n'était qu'une mise en bouche. Et ce qui me trottait dans la tête était... DFQRCEDT !
Et oui ! Il reste deux grandes catégories de fichiers qui ne sont pas encore accentuées : les fichiers de quête et les livres. Et des deux, ce sont évidemment les quêtes les plus importantes, car on les rencontre en permanence dans tout le jeu et leur lecture n'est pas, au contraire de celle des livres, optionnelle. Et je suppose que comme moi vous restez un peu dubitatif devant l'ampleur du travail à accomplir : plus de 300 fichiers QRC bien remplis, ça calme !
En dehors de l'attaque à la bûcheron qui consiste à prendre les fichiers un par un et à accentuer ligne à ligne, il y avait une possibilité d'automatisation qui nous tendait un peu les bras : utiliser la fonction "Export All QRC in TXT" de DFQRCEDT, passer le résultat à la moulinette du correcteur orthographique de Word, tout accentuer dans ce fichier externe, et puis... attendre que ce brave Daneel53 code la fonction d'import qui permettrait de tout remettre dans les fichiers QRC. Je dois avouer que c'est l'option qui me semblait s'imposer depuis que j'avais codé l'import de Text.txt dans TEXT.RSC pour régler d'un coup le sort des 1400 entrées de ce fichier.
Oui, mais voilà. Une fois que TEXT.RSC a été accentué et l'import réalisé, je me suis rendu compte que cette fonction d'import global ne servira jamais plus. Le travail a été fait, point final. Et s'il est certain que le contenu de TEXT.RSC devra encore être peaufiné ici et là, ça se fera avec les fonctions traditionnelles de DFRSCEDT, mais pas avec la fonction d'import. Alors quoi : remettre ça avec DFQRCEDT ? Passer beaucoup de temps à mettre au point une fonction qui ne servira qu'une seule fois ! Bof ! Peu enthousiasmant !
Alors l'idée m'est venu de faire non pas un import mais une classique fonction Search and Replace. Et surtout, pas une fonction limitée à l'enregistrement en cours, pas même une fonction limitée au fichier en cours, mais une fonction capable de remplacer une chaine par une autre DANS TOUS LES FICHIERS QRC D'UN SEUL COUP !
Voici donc pour vous, dans le DFQRCEDT 1.6, la fonction "Replace in all QRC", qui va remplacer une chaine par une autre dans tous les fichiers QRC du répertoire dans lequel vous avez ouvert l'outil. Vous voulez remplacer "mysterieu" par "mystérieu" partout ? Un coup de "Replace in all QRC" et hop, voilà qui est fait dans tous les fichiers !
Bien entendu les classiques fonction Search (dans le fichier courant), Replace (dans le prochain enregistrement du fichier courant) et "Replace All" (dans tous les enregistrements du fichier courant) sont là aussi. Tiens, finalement il manque peut-être la fonction "Search in all QRC", pour savoir dans quels fichiers QRC on parle de Meridia. Si ça vous manque, je la coderai un prochain jour, ça ne prendra pas bien longtemps.
En attendant amusez-vous avec le remplacement général, ça va permettre de faire avancer l'accentuation des fichiers QRC sans l'appréhension de ne jamais en voir le bout : tout mot accentué sera accentué partout, ça donne le sentiment d'avancer. Mais faites très attention : le remplacement peut avoir des effets désastreux si on n'y réfléchit pas à deux fois et que la chaine visée est aussi partie d'un mot plus grand ou change le sens. Ne pas faire de Replace All pour changer tous les "enerve" en "énervé", sinon c'est vous qui allez l'être en lisant quelques semaines plus tard "Votre interlocuteur vous énervé, vous lui mettez votre poing dans la figure".
Allez, j'arrête là pour ce soir. Je pense avoir mieux testé ce programme que DFEXEEDT il y a deux jours, faites des essais sur des copies des fichiers QRC pour commencer, le temps de bien comprendre le fonctionnement des nouvelles fonctions, de me suggérer, pourquoi pas, quelques améliorations... et de m'informer des bugs éventuels si vous en détectez. Et après ça : à nous l'accentuation massive des fichiers QRC !
Bonne continuation, et à très bientôt.
Edit du 24 octobre:
En relisant mon code ce soir je me suis aperçu d'une petite imperfection qui aurait pu avoir un effet de bord, certes très improbable, mais bon, avec une fonction comme Replace in All QRC il ne faut pas rigoler, donc je préfère virer la 1.6.0 et la remplacer par la 1.6.1, je joue la sécurité.
Sinon je suis en plein codage du remplacement d'une chaine par une chaine de taille différente de l'original, et c'est sportif ! Par exemple, si on remplace "Ho" par "Houu", ben ça génère une récursivité qui fait que le programme ne vous rendra jamais plus la main, tout occupé qu'il est à éternellement remplacer le Ho de Houu par Houu jusqu'à la fin des temps... Comme il se fait tard, j'arrête là pour aujourd'hui : il faut voir la tête bien reposée pour coder ça et ça n'est plus le cas à cette heure ci.
Quoi qu'il en soit, testez mon programme si vous le voulez bien, ça m'aidera, mais uniquement sur des copies de vos fichiers QRC dans l'état PFD 0.28, car je ne garantis pas encore le 100% bug free... et je ne veux pas que vous flinguiez vos 300 fichiers QRC d'un seul coup.
A suivre...
Modifié par Daneel53, 27 octobre 2012 - 09:40.