Question
[Résolu] Commande Rechercher et remplacer
- Cheema
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 5
- Remerciements reçus 0
il y a 8 ans 1 mois #25020
par Cheema
[Résolu] Commande Rechercher et remplacer a été créé 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
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.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6311
- Remerciements reçus 68
il y a 8 ans 1 mois #25021
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:[Commande Rechercher et remplacer]
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.
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.
- Cheema
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 5
- Remerciements reçus 0
il y a 8 ans 1 mois #25022
par Cheema
Réponse de Cheema sur le sujet Re:[Commande Rechercher et remplacer]
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
[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.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6311
- Remerciements reçus 68
il y a 8 ans 1 mois #25023
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:[Commande Rechercher et remplacer]
bled78 écrit:

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
Oui je le peuxPourrais-tu être un poil plus clair^^?
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.
- Cheema
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 5
- Remerciements reçus 0
il y a 8 ans 1 mois #25025
par Cheema
Réponse de Cheema sur le sujet Re:[Commande Rechercher et remplacer]
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
[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.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6311
- Remerciements reçus 68
il y a 8 ans 1 mois #25027
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:[Commande Rechercher et remplacer]
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
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
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.052 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- [Résolu] Commande Rechercher et remplacer