Question [Résolu] Commande Rechercher et remplacer

Plus d'informations
il y a 8 ans 1 mois #25020 par Cheema
Bonjour, premier message sur ce beau forum !

J'ai un petit soucis, je suis entrain de faire un script qui équivaut au \"Rechercher et remplacer (ctrl+F)\", j'arrive effectivement à changer tout le contenu du fichier sélectionner mais pas moyen de faire mot par mot et après maintes recherches je ne trouve pas de pistes ..

Code actuel (Je suis en Gui, je sélectionne via un bouton le fichier à modifier, il s'affiche dans une richtextbox et je souhaite pouvoir confirmer le changement mot par mot, code actuel qui change tout :
[code:1]# Define Variable
$search = \"\b\"+$tbxSearch.Text+\"\b\"
$replace = $tbxReplace.Text

# Define value of content variable
$content = Get-Content $openfiledialog1.FileName | foreach { $_ -replace $search, $replace }

# Remplace content to file $openfiledialog1.fileName by $content
Set-Content -Path $openfiledialog1.FileName -Value $content #-confirm:$TRUE

$rtbFileRead.Text = Get-Content -Path $openfiledialog1.FileName | where { $_ -ne \"$null\" }
[/code:1]

Merci d'avance!<br><br>Message édité par: Arnaud, à: 19/03/18 15:24

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 8 ans 1 mois #25021 par Laurent Dardenne
Peut être faut-il utiliser cette méthode de la classe regex ?
Le paramètre $Count serait tjr à 1 et $StartAt s'incrémenterait de 1 à chaque appel.Reste également à déterminer l'arrêt de la recherche.

Tutoriels PowerShell

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 8 ans 1 mois #25022 par Cheema
Pourrais-tu être un poil plus clair^^? je n'ai pas vraiment compris, j'ai fais ceci :
[code:1]$content = Get-Content $openfiledialog1.FileName | -replace($search, $replace, $count, $start ++)[/code:1]
mais je pense que c'est totalement à l'opposé de ce que tu as voulu dire :(

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 8 ans 1 mois #25023 par Laurent Dardenne
bled78 écrit:

Pourrais-tu être un poil plus clair^^?

Oui je le peux :)
Un exemple d'appel ici , avec
[code:1]
$Expression=New-Object System.Text.RegularExpressions.RegEx($Key,$Parameters.Options)
[/code:1]
Ma proposition est de partir sur une méthode de la classe [regex], car l'opérateur PS -Replace est limité je trouve.

Tu devrais déjà regarder le comportement de cette méthode en dehors du code de la GUI pour ne compliquer l'étude.
Si cela correspond tu vérifies son intégration dans le GUI (pb se scope, script: , global: , etc)

[edit]
Correction, c'est une méthode d'instance.<br><br>Message édité par: Laurent Dardenne, à: 16/02/18 12:52

Tutoriels PowerShell

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 8 ans 1 mois #25025 par Cheema
Alors, j'ai regardé les regex, j'arrive à comprendre et reproduire les codes basiques tels que :
[code:1]$message = 'there is an error with your file'
$message -match 'error'[/code:1]
Mais.. ton code, je ne comprends pas quel ligne prendre, comment faire plutôt, admettons j'arrive à remplacer via regex toutes les correspondances de mon ficher, je ne vois pas comment récupérer ou attribuer un ID à chaque mot avec correspondances et demander à l'user de valider le changement ?

Je salue le temps que tu prends pour m'expliquer^^, merci du fond du cœur

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 8 ans 1 mois #25027 par Laurent Dardenne
Mauvaise piste, recherche sur le composant richtextbox .
Ici tu ne peux faire un get-content, tu dois charger le contenu du fichier est travailler avec les infos du composant.
Tu peux rechercher avec 'c# search replace winform richtextbox'.
Voir faire du reverse ici :P

Tutoriels PowerShell

Connexion ou Créer un compte pour participer à la conversation.

Temps de génération de la page : 0.052 secondes
Propulsé par Kunena