Question
manipulation texte
- bin
- Auteur du sujet
- Hors Ligne
- Membre junior
-
Réduire
Plus d'informations
- Messages : 27
- Remerciements reçus 0
il y a 10 ans 4 mois #20996
par bin
manipulation texte a été créé par bin
bonjour:
j'ai un fichier texte extension file1.txt, je cherche les méthode pour supprimer un paragraphe du texte entre deux titres: après titre 11 et avant titre 12 pour le remplacer par le contenu d'un autre fichier file2.txt.
example du file1.txt
....
....
titre 11
....
...
titre 12
peut on m'orienter sur les méthodes qui vont me permettre de le faire
merci d'avance
j'ai un fichier texte extension file1.txt, je cherche les méthode pour supprimer un paragraphe du texte entre deux titres: après titre 11 et avant titre 12 pour le remplacer par le contenu d'un autre fichier file2.txt.
example du file1.txt
....
....
titre 11
....
...
titre 12
peut on m'orienter sur les méthodes qui vont me permettre de le faire
merci d'avance
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 10 ans 4 mois #20998
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:manipulation texte
Salut,
ce pb a été traité sur ce forum, maintenant il s'agit de retrouver le post d'origine...
Je regarde si je l'ai mémorisé qq part.
ce pb a été traité sur ce forum, maintenant il s'agit de retrouver le post d'origine...
Je regarde si je l'ai mémorisé qq part.
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- bin
- Auteur du sujet
- Hors Ligne
- Membre junior
-
Réduire
Plus d'informations
- Messages : 27
- Remerciements reçus 0
il y a 10 ans 4 mois #20999
par bin
Réponse de bin sur le sujet Re:manipulation texte
merci
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 10 ans 4 mois #21001
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:manipulation texte
Tu peux t'inspirer de ceci :
[code:1]
#Remove-AuthenticodeSignature.ps1
Filter Remove-AuthenticodeSignature{
#([Microsoft.PowerShell.Commands.FileSystemCmdletProviderEncoding] $Encoding=\"ASCII\"«»)
function Parse([String] $FileName)
{ #renvoi toutes les lignes sauf celles du bloc de signature
$isSignatureBloc=$False
Get-Content -Path $FileName|
Foreach-Object {
switch ($_)
{
\"# SIG # Begin signature block\" {$isSignatureBloc=$True;continue}
\"# SIG # End signature block\" {$isSignatureBloc=$False;Continue}
default {
if ($isSignatureBloc -eq $false)
#On traite les lignes qui ne se trouvent pas dans le bloc de signature
{$_}
}#default
}#Switch
}#Foreach
}#Parse
if ($_ )
{
#Récupére un nom de fichier créé par l'OS
$TempFile = [IO.Path]::GetTempFileName()
$FullPath=Resolve-Path \"$_\"
Write-Debug \"$TempFile\"
Write-Debug \"$FullPath\"
#Extrait toutes les lignes sauf la signature dans un fichier temporaire
Parse \"$FullPath\"|Set-Content \"$TempFile\"
#Ecrase le fichier d'origine à partir du fichier temporaire
#$FileInfo.Replace ne fonctionne pas car %Temp%
#peut être sur un disque différent de celui de la source :/
Get-Content \"$TempFile\"|Set-Content \"$FullPath\"
Del \"$TempFile\"
}
else {Write-Error \"[Remove-AuthenticodeSignature] Ce filtre a reçu une donnée `$null du pipeline.\"}
}
[/code:1]
Le mieux aurait été de généraliser ce traitement, mais là je n'ai pas trop le temps.
Ce code date un peu, il est donc à revalider avec les dernières versions de PS.
[code:1]
#Remove-AuthenticodeSignature.ps1
Filter Remove-AuthenticodeSignature{
#([Microsoft.PowerShell.Commands.FileSystemCmdletProviderEncoding] $Encoding=\"ASCII\"«»)
function Parse([String] $FileName)
{ #renvoi toutes les lignes sauf celles du bloc de signature
$isSignatureBloc=$False
Get-Content -Path $FileName|
Foreach-Object {
switch ($_)
{
\"# SIG # Begin signature block\" {$isSignatureBloc=$True;continue}
\"# SIG # End signature block\" {$isSignatureBloc=$False;Continue}
default {
if ($isSignatureBloc -eq $false)
#On traite les lignes qui ne se trouvent pas dans le bloc de signature
{$_}
}#default
}#Switch
}#Foreach
}#Parse
if ($_ )
{
#Récupére un nom de fichier créé par l'OS
$TempFile = [IO.Path]::GetTempFileName()
$FullPath=Resolve-Path \"$_\"
Write-Debug \"$TempFile\"
Write-Debug \"$FullPath\"
#Extrait toutes les lignes sauf la signature dans un fichier temporaire
Parse \"$FullPath\"|Set-Content \"$TempFile\"
#Ecrase le fichier d'origine à partir du fichier temporaire
#$FileInfo.Replace ne fonctionne pas car %Temp%
#peut être sur un disque différent de celui de la source :/
Get-Content \"$TempFile\"|Set-Content \"$FullPath\"
Del \"$TempFile\"
}
else {Write-Error \"[Remove-AuthenticodeSignature] Ce filtre a reçu une donnée `$null du pipeline.\"}
}
[/code:1]
Le mieux aurait été de généraliser ce traitement, mais là je n'ai pas trop le temps.
Ce code date un peu, il est donc à revalider avec les dernières versions de PS.
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.089 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- manipulation texte