Question manipulation texte

Plus d'informations
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

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

Plus d'informations
il y a 10 ans 4 mois #20998 par Laurent Dardenne
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.

Tutoriels PowerShell

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

Plus d'informations
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.

Plus d'informations
il y a 10 ans 4 mois #21001 par Laurent Dardenne
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.

Tutoriels PowerShell

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

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