Aller au contenu
  • Pas encore inscrit ?

    Pourquoi ne pas vous inscrire ? C'est simple, rapide et gratuit.
    Pour en savoir plus, lisez Les avantages de l'inscription... et la Charte de Zébulon.
    De plus, les messages que vous postez en tant qu'invité restent invisibles tant qu'un modérateur ne les a pas validés. Inscrivez-vous, ce sera un gain de temps pour tout le monde, vous, les helpeurs et les modérateurs ! :wink:

Coincé sous Notepad++


Messages recommandés

  • Modérateurs
Posté(e)

Bonsoir tout le monde, :P

 

Bon je suis coincé sur un petit souci. Je bricole avec Notepad++, et -peu importe le language- il est possible de remplacer automatiquement des termes par d'autres dans les fichiers ouverts, ou dans une liste de fichiers définis. La seule limite au remplacement est de l'ordre de la ligne de termes. On ne peut pas remplacer 2 lignes à la fois par une ou plusieurs autres lignes.

 

Il est là mon souci. J'ai plusieurs centaines de pages php à modifier ; j'ai appris au fur et à mesure en faisant, et je ne découvre que maintenant les avantages de la fonction include php qui me faciliterait grandement la vie pour les futures améliorations.

 

Du coup, je me retrouve avec des "blocs" de ligne à remplacer par une ou des lignes, et je ne peux pas l'automatiser comme je pourrais le faire avec un terme ou une seule ligne. Il y a-t-il une solution qui m'éviterait de le faire ligne par ligne ? Avec un autre outil ?

  • Modérateurs
Posté(e) (modifié)

Bonsoir Gof,

 

Il est vrai que NotePad ne permet pas d'employer des expressions rationnelles (ou régulières). Mais je suis persuadé qu'il existe des éditeurs free qui l'acceptent (regarde la section de téléchargement de Zébulon, ou encore UltraEdit). Moi, j'en ai un vieux payant, TextPad, qui n'a rien d'exceptionnel mais suffit amplement à mes besoins.

 

Grâce à une expression rationnelle, tu exprimes un motif de recherche : tu peux en particulier traiter plusieurs lignes à la fois, les sauts de ligne possédant une représentation conventionnelle (par exemple \n).

 

Perl (langage free) est également très puissant dans le domaine des expressions rationnelles.

 

P.S.: mais tu parles de NotePad++, excuse-moi, je n'avais pas relevé. Cet éditeur ne sait pas traiter des expressions régulières ?

Modifié par dylav
  • Modérateurs
Posté(e)

Bonsoir Dylav :P

 

Je te remercie de ta réponse. J'ai en effet déclenché le plan Rouge et j'ai demandé à tout le monde en même temps (forums et salors IRC) :P

 

Mais je suis persuadé qu'il existe des éditeurs free qui l'acceptent...
Oui, il semblerait. Je ne les connaissais pas, mais Malekal morte m'a indiqué deux outils -sensiblement similaires- qui semblent très bien convenir à ce dont j'ai besoin :
  • Remplacevite
    Falkra : Comme son nom le sous-entend, cet utilitaire gratuit vous permet d'effectuer des remplacements de chaînes de caractères multiligne ou non dans des noms de fichiers ou dans leur contenu (...)

  • BK Replace EM
    Falkra : Je vous ai parlé l'autre jour de Remplacevite et bien voici encore un programme semblable très puissant qui permet de rechercher et de remplacer des chaînes de caractère dans des fichiers textes ou html (...)

Je vais lorgner de ce côté voir si cela peut convenir. Je viendrai le préciser si cela a bien fonctionné. Il resterait au pire l'alternative du batch, mais cela me semble un poil complexe.

 

EDIT :

 

P.S.: mais tu parles de NotePad++, excuse-moi, je n'avais pas relevé. Cet éditeur ne sait pas traiter des expressions régulières ?
Heu... :P Je l'utilise peut-être mal alors... je ne sais pas. Je vais faire quelques essais.
Posté(e) (modifié)

Salut,

EDIT :

Heu... :P Je l'utilise peut-être mal alors... je ne sais pas. Je vais faire quelques essais.

Mais non ... :P

Comme l'ont souilgné sloshy et dylav, les regexp fonctionnent ; mais j'ai essayé d'en faire une pour sélectionner un texte sur plusieurs lignes. J'arrivais à sélectionner ligne par ligne. Mais dès que j'insérais le \n pour avoir tous le texte, ça ne fonctionnait plus. Notepad++ ne supporterait donc pas les retours à la ligne. Gagné ! Voir ici.

Modifié par Peste
Posté(e)

je conseille d'utiliser un autre éditeur de texte.

 

j'en un connais super : SCITE.EXE (existe en version windows et linux)

  • Modérateurs
Posté(e)

Bonsoir à tous, :P

 

Merci pour vos différentes réponses. Un petit point des essais réalisés :

  • Je n'ai pas encore essayé le soft suggéré par scuny, je l'essaierai pour voir.
  • J'ai donc refait quelques essais avec Notepad++, je n'arrive pas en effet, comme indiqué par Peste des entrées de plusieurs lignes, rien à faire.
  • Pour ce qui concerne RemplaceVite, les différents essais n'ont rien donné de vraiment concluant :P
  • J'ai eu un peu pus de succès avec BK Replace EM, mais ce n'est pas le top non plus. Il suffit d'un seul retour à la ligne supplémentaire entre deux lignes codées à l'identique sinon, pour que cela ne soit pas interprété. Sur les quelques centaines de fichiers, le remplacement a été automatisé sur -à vue de bec :P- 90% des fichiers, le reste a été poursuivi à la main. J'avais fait l'erreur de ne pas reprendre une trame identique pour chacune des pages et ensuite d'y ajouter mes insertions, mais de copier-coller les différents éléments récurrents dont j'avais besoin, du coup, je me retrouve avec des blocs identiques de scripts mais avec des retours à la ligne, en plus ou en moins entre les lignes, suivant les pages.

Dur dur l'apprentissage :P

Posté(e)

C'est maintenant qu'on te dit que dans les regexp tu pouvais mettre une étoile (*) derrière les "\n" pour spécifier qu'il pouvait y avoir un nombre indéterminé de sauts de ligne ?

  • Modérateurs
Posté(e)

Bonsoir Kewlcat :P

 

Heu..... :P Je crois pas avoir compris ce que tu as voulu dire. :P

 

Donc si j'ai sur une page

<texte1>

<- 1 retour

<- 2 retour

<- 3 retour

<texte2>

etc

 

et sur une autre page :

<texte1>

<- 1 retour

<texte2>

etc

 

Je mets ça en regexp ?

<texte1> /n*

<texte2>

etc

Posté(e)

Oui, mais avec un \ à la place du /, et éventuellement pas d'espace après <texte1> .... tout dépend comment tu as écrit tes lignes (avec ou sans espace à la fin)... Cela dit, tu peux aussi utiliser "<texte1>[ \n]*<texte2>" comme regexp, histoire de gérer n'importe quel nombre d'espaces / sauts de lignes entre les deux textes... Et on peut même mettre \s à la place de l'espace pour gérer les tabulations (tout ce qui est "whitespace")...

Cela dit, on peut toujours compliquer un peu plus les regexp pour leur faire accepter tout et n'importe quoi, mais si déjà celle-là couvre plus de 90% de tes besoins, mieux vaut éviter l'entorse au cerveau et finir les % restants à la main ;-)

 

-- edit --

A noter : dans tes exemples, tu oublies le premier saut de ligne...

<texte1><-- 1 retour !
<-- 2 retour
<texte2>

;-)

  • Modérateurs
Posté(e)

Ok, je vais essayer demain par curiosité pour voir, je n'ai pas le bon pc sous la main là. De même que j'essaierais le soft proposé par scuny.

 

Merci Kewlcat :P

 

EDIT : vu l'édit précédent ^^. En effet, je l'avais oublié celui-là :P

Rejoindre la conversation

Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.
Remarque : votre message nécessitera l’approbation d’un modérateur avant de pouvoir être visible.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

  • En ligne récemment   0 membre est en ligne

    • Aucun utilisateur enregistré regarde cette page.
×
×
  • Créer...