Page 1 sur 1

[R] Notepad++ (remplacer)

Posté : jeu. 09 févr. 2012 10:57
par emanemos
bonjour,

je recherche le code pour faire des remplacements dans un fichier par notepad++ :

Code : Tout sélectionner

Run ("C:\Program Files\Notepad++\notepad++.exe E:\test.xml")
WinWaitActive("[CLASS:Notepad]")
je souhaite remplacer "" par " puis enregistrer et fermer le fichier.
je bloque.

merci pour votre aide.

Re: [..] notepad++ (remplacer)

Posté : jeu. 09 févr. 2012 11:28
par ZDS
Bonjour,

Tout d'abord, pourquoi faire ce remplacement en pilotant Notepad++ alors que tu pourrais faire les remplacements directement dans le script, avec les fonctions FileOpen/FileWrite ?

Sinon, voici un bout de code pour t'aiguiller (ATTENTION: Le code n'est peut-être pas fonctionnel) :

Code : Tout sélectionner

Run ("C:\Program Files\Notepad++\notepad++.exe E:\test.xml")
WinWaitActive("[CLASS:Notepad++]")
Send('^h') ; Envoye un Ctrl+H
WinWaitActive("[CLASS:#32770]") ; Attend l'arrivée de la fenêtre de remplacement
Send('"{TAB}""{TAB}t') ; Remplit " dans le premier champ, passe au suivant, remplit "" dans le second, sort des champs de saisie, et appuie sur t pour lancer la fonction du bouton 'Remplacer tout'
Voila, je ne peux pas tester ce code, je n'ai pas facilement accès à un environnement avec N++ (on peut pas toujours tout faire par VNC ^^).

A bientôt, quand j'aurai un Notepad++ sous la main, je testerai et modifierai si besoin.

Re: [..] notepad++ (remplacer)

Posté : jeu. 09 févr. 2012 11:43
par emanemos
cela marche : mais je dois valider un OK (comment faire?) et fermer après la fenêtre remplacer

et comment faire pour Run("C:\Program Files\Notepad++\notepad++.exe E:\Data\2012-02-09\test.xml")
avec des variables pour changer la date tous les jours; la ligne Run ne prend pas les variables dans le nom de fichier ?

Re: [..] notepad++ (remplacer)

Posté : jeu. 09 févr. 2012 11:50
par ZDS
Pour faire OK, le plus simple est encore de faire un Send("{ENTER}").

Pour changer le nom du fichier, tu peux utiliser les macros @YEAR, @MON, @MDAY pour récupérer respectivement l'année, le mois et le jour . Le nom du fichier étant dans une une simple chaîne de caractères, si tu as suivi les bases du tutoriel du SiteDuZéro (lien tout en haut à gauche de cette page), tu devrais être capable de le faire proprement.

Bye !

Re: [..] notepad++ (remplacer)

Posté : jeu. 09 févr. 2012 12:01
par emanemos

Code : Tout sélectionner

Run("C:\Program Files\Notepad++\notepad++.exe" $path_imp & $fic & "C1.xml") ; ne marche pas

path_imp = "E:\Data\"
$fic=@YEAR & "-" & @MON & "-" & @MDAY & "\"

Re: [..] notepad++ (remplacer)

Posté : jeu. 09 févr. 2012 12:52
par TommyDDR
@ZDS : je vous demanderais de ne pas répondre s'il vous plait

@emanemos :
emanemos a écrit :Run("C:\Program Files\Notepad++\notepad++.exe $path_imp & $fic & "C1.xml"") ne marche pas
Ça ne marche pas (sous entendu : "Je n'arrive pas à le faire marcher") et ça ne compile pas sont deux choses totalement différentes.

Si vous avez fait un copier coller de votre code, je vous conseille de lire l'erreur retournée dans SciTE.

Re: [..] notepad++ (remplacer)

Posté : jeu. 09 févr. 2012 14:23
par emanemos
j'ai juste dit que je n'y arrivais pas .... Cela ne marchait pas quand je le faisais....

j'ai trouvé :
Run("C:\Program Files\Notepad++\notepad++.exe" &" " & $path_imp & $fic & "C1.xml")


Merci pour votre aide.

Re: [R] Notepad++ (remplacer)

Posté : jeu. 09 févr. 2012 15:34
par TommyDDR
Si vous avez une erreur lors de l’appuie sur F5 et que celle ci vous indique "Syntax error" c'est que vous avez mal écris une ligne de code, et SciTE est très gentil et vous indique l'endroit avec ses

Code : Tout sélectionner

~~~~~~~~~^
Bonne fin de code ^^