Question
[Résolu] Remplacer une ligne dans une chaine
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6311
- Remerciements reçus 68
il y a 10 ans 11 mois #19403
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:Remplacer une line dans une chaine
Salut,
6ratgus écrit:
6ratgus écrit:
pour info le CR/LF dans une regex est géré différemment via l'option multiligne.c'est la même chose sans le /r/n
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- Ossy
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 7
- Remerciements reçus 0
il y a 10 ans 11 mois #19404
par Ossy
Réponse de Ossy sur le sujet Re:Remplacer une line dans une chaine
Le code du fichier test marche bien pour moi aussi.
Dans mon PS1 par contre il n'efface pas la ligne entier.
J'ai fait un nouveau script de test pour reproduire mon erreur.
Franchement la je ne comprend plus rien (déjà pas très doué avant).
Voici le script et le fichier texte source.
Merci d'avance pour vos lumières.
++
Ossy
$monTab = @(
(\"#NOMAFFICHE#\", \"Titi Tutu\"),
(\"#INFO#\" , \"###DELETE###\"),
(\"#FONCTION#\" , \"###DELETE###\"),
(\"#EMAIL#\" , \"###DELETE###\"),
(\"#TEL#\" , \"+33 0 00 00 00 00\"),
(\"#SOCIETE#\" , \"EIFFEL, PARIS\"),
(\"#FAX#\" , \"###DELETE###\"),
(\"#VILLE#\" , \"PARIS\"),
(\"#ADR#\" , \"###DELETE###\"),
(\"#GSM#\" , \"###DELETE###\"),
(\"#WEB#\" , \"###DELETE###\"),
(\"#COMPLETEMENT#\" , \"###DELETE###\")
)
$textHtm = Get-Content .\Model99.txt
for ($j=0;$j -le $monTab.length-1;$j++)
{
$result=$($monTab[$j][1])
$textHtm = $textHtm -replace $monTab[$j][0], $result
}
#Avant effacement
$textHtm | Set-Content .\test00.htm
#effacement des lignes ###DELETE###
$textHtm = $textHtm -replace \".*###DELETE###*.\",\"\"
$textHtm | where {$_ -ne \"\"} | Set-Content .\test01.htm
Dans mon PS1 par contre il n'efface pas la ligne entier.
J'ai fait un nouveau script de test pour reproduire mon erreur.
Franchement la je ne comprend plus rien (déjà pas très doué avant).
Voici le script et le fichier texte source.
Merci d'avance pour vos lumières.
++
Ossy
$monTab = @(
(\"#NOMAFFICHE#\", \"Titi Tutu\"),
(\"#INFO#\" , \"###DELETE###\"),
(\"#FONCTION#\" , \"###DELETE###\"),
(\"#EMAIL#\" , \"###DELETE###\"),
(\"#TEL#\" , \"+33 0 00 00 00 00\"),
(\"#SOCIETE#\" , \"EIFFEL, PARIS\"),
(\"#FAX#\" , \"###DELETE###\"),
(\"#VILLE#\" , \"PARIS\"),
(\"#ADR#\" , \"###DELETE###\"),
(\"#GSM#\" , \"###DELETE###\"),
(\"#WEB#\" , \"###DELETE###\"),
(\"#COMPLETEMENT#\" , \"###DELETE###\")
)
$textHtm = Get-Content .\Model99.txt
for ($j=0;$j -le $monTab.length-1;$j++)
{
$result=$($monTab[$j][1])
$textHtm = $textHtm -replace $monTab[$j][0], $result
}
#Avant effacement
$textHtm | Set-Content .\test00.htm
#effacement des lignes ###DELETE###
$textHtm = $textHtm -replace \".*###DELETE###*.\",\"\"
$textHtm | where {$_ -ne \"\"} | Set-Content .\test01.htm
La pièce jointe Model99.txt est absente ou indisponible
Pièces jointes :
Connexion ou Créer un compte pour participer à la conversation.
- Philippe
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 1778
- Remerciements reçus 21
il y a 10 ans 11 mois #19406
par Philippe
Réponse de Philippe sur le sujet Re:Remplacer une line dans une chaine
bonjour Laurent
[code:1]$regex = new-object System.Text.RegularExpressions.Regex ('.*###DELETE###*.', [System.Text.RegularExpressions.RegexOptions]::MultiLine)
[/code:1]
que j'ai trouvé sur ce site mais ça ne suffit pas j'ai l'impression !
je pense que regex n'est pas bon
mais le site cité ci-dessus doit avoir la syntaxe exacte en cherchent un peu par exemple ici <br><br>Message édité par: 6ratgus, à: 3/04/15 10:17
je suppose que tu parle de :pour info le CR/LF dans une regex est géré différemment via l'option multiligne.
[code:1]$regex = new-object System.Text.RegularExpressions.Regex ('.*###DELETE###*.', [System.Text.RegularExpressions.RegexOptions]::MultiLine)
[/code:1]
que j'ai trouvé sur ce site mais ça ne suffit pas j'ai l'impression !
je pense que regex n'est pas bon
mais le site cité ci-dessus doit avoir la syntaxe exacte en cherchent un peu par exemple ici <br><br>Message édité par: 6ratgus, à: 3/04/15 10:17
Connexion ou Créer un compte pour participer à la conversation.
- Ossy
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 7
- Remerciements reçus 0
il y a 10 ans 11 mois #19409
par Ossy
Réponse de Ossy sur le sujet Re:Remplacer une line dans une chaine
Re
Ca marche bien comme ceci pour moi:
$textHtm = $textHtm -replace \"^.*###DELETE###*.*$\",\"\"
Encore un grand merci pour votre aide le temps passé.
++
Ossy
Ca marche bien comme ceci pour moi:
$textHtm = $textHtm -replace \"^.*###DELETE###*.*$\",\"\"
Encore un grand merci pour votre aide le temps passé.
++
Ossy
Connexion ou Créer un compte pour participer à la conversation.
- Philippe
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 1778
- Remerciements reçus 21
il y a 10 ans 11 mois #19410
par Philippe
Réponse de Philippe sur le sujet Re:Remplacer une line dans une chaine
en faite c'était simple
moi j'avais trouvé ceci :
[code:1]$textHtm -replace '^.*###DELETE###.*$',\"\" | where {$_ -ne \"\"}[/code:1]<br><br>Message édité par: 6ratgus, à: 3/04/15 10:55
moi j'avais trouvé ceci :
[code:1]$textHtm -replace '^.*###DELETE###.*$',\"\" | where {$_ -ne \"\"}[/code:1]<br><br>Message édité par: 6ratgus, à: 3/04/15 10:55
Connexion ou Créer un compte pour participer à la conversation.
- Ossy
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 7
- Remerciements reçus 0
il y a 10 ans 11 mois #19414
par Ossy
Réponse de Ossy sur le sujet Re:Remplacer une line dans une chaine
Re
Pour moi c'est encore mieux, merci
et bon WE
Pour moi c'est encore mieux, merci
et bon WE
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.051 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- [Résolu] Remplacer une ligne dans une chaine