Résolu
Manipulation de fichiers et transcodage
- Dead
-
Auteur du sujet
- Hors Ligne
- Membre senior
-
Réduire
Plus d'informations
- Messages : 73
- Remerciements reçus 2
il y a 1 an 10 mois #33834
par Dead
Réponse de Dead sur le sujet Manipulation de fichiers et transcodage
Eric, auriez vous une adresse mail sur lequel je pourrais vous envoyer la liste des besoins ?
Car cela sera plus facile pour vous de comprendre ce que l'on me demande.
Je vous remercie pour votre aide!
Car cela sera plus facile pour vous de comprendre ce que l'on me demande.
Je vous remercie pour votre aide!
Connexion ou Créer un compte pour participer à la conversation.
- Dead
-
Auteur du sujet
- Hors Ligne
- Membre senior
-
Réduire
Plus d'informations
- Messages : 73
- Remerciements reçus 2
il y a 1 an 10 mois - il y a 1 an 10 mois #33835
par Dead
Réponse de Dead sur le sujet Manipulation de fichiers et transcodage
Voici ce que l'on me demande en plus:
Transcoder le code de l’agence de gestion
Format sortant pour 22 : <prg-uge-code>AG122</prg-uge-code>
Format sortant pour 29 : <prg-uge-code>AG129</prg-uge-code>
Format sortant pour 35 : <prg-uge-code>AG135</prg-uge-code>
Format sortant pour 56 : <prg-uge-code>AG135</prg-uge-code>
Il est nécessaire de remplacer le code selon la règle suivante :
• Si <bien-dpt>22</bien-dpt> et <prg-uge-code>AG122</prg-uge-code> alors remplacer le code 1 pour obtenir la balise suivante <prg-uge-code>1</prg-uge-code>
• Si <bien-dpt>29</bien-dpt> et <prg-uge-code>AG129</prg-uge-code> alors remplacer le code 1 pour obtenir la balise suivante <prg-uge-code>1</prg-uge-code>
• Si <bien-dpt>35</bien-dpt> et <prg-uge-code>AG135</prg-uge-code> alors remplacer le code 1 pour obtenir la balise suivante <prg-uge-code>013</prg-uge-code>
• Si <bien-dpt>56</bien-dpt> et <prg-uge-code>AG135</prg-uge-code> alors remplacer le code 1 pour obtenir la balise suivante <prg-uge-code>001</prg-uge-code>
Etape 4 : Transcoder l’adresse mail de compte rendu
Format sortant : <adr-mail-log>Cette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer le JavaScript pour la visualiser.
Format attendu : <adr-mail-log>Cette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer le JavaScript pour la visualiser.
Transcoder le code de l’agence de gestion
Format sortant pour 22 : <prg-uge-code>AG122</prg-uge-code>
Format sortant pour 29 : <prg-uge-code>AG129</prg-uge-code>
Format sortant pour 35 : <prg-uge-code>AG135</prg-uge-code>
Format sortant pour 56 : <prg-uge-code>AG135</prg-uge-code>
Il est nécessaire de remplacer le code selon la règle suivante :
• Si <bien-dpt>22</bien-dpt> et <prg-uge-code>AG122</prg-uge-code> alors remplacer le code 1 pour obtenir la balise suivante <prg-uge-code>1</prg-uge-code>
• Si <bien-dpt>29</bien-dpt> et <prg-uge-code>AG129</prg-uge-code> alors remplacer le code 1 pour obtenir la balise suivante <prg-uge-code>1</prg-uge-code>
• Si <bien-dpt>35</bien-dpt> et <prg-uge-code>AG135</prg-uge-code> alors remplacer le code 1 pour obtenir la balise suivante <prg-uge-code>013</prg-uge-code>
• Si <bien-dpt>56</bien-dpt> et <prg-uge-code>AG135</prg-uge-code> alors remplacer le code 1 pour obtenir la balise suivante <prg-uge-code>001</prg-uge-code>
Etape 4 : Transcoder l’adresse mail de compte rendu
Format sortant : <adr-mail-log>Cette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer le JavaScript pour la visualiser.
Format attendu : <adr-mail-log>Cette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer le JavaScript pour la visualiser.
Dernière édition: il y a 1 an 10 mois par Dead.
Connexion ou Créer un compte pour participer à la conversation.
- Dead
-
Auteur du sujet
- Hors Ligne
- Membre senior
-
Réduire
Plus d'informations
- Messages : 73
- Remerciements reçus 2
il y a 1 an 10 mois #33836
par Dead
Réponse de Dead sur le sujet Manipulation de fichiers et transcodage
Eric, j'ai fait mon script. Il ressemble à cela:
[xml]$xmlContent = Get-Content -Path "C:\Users\user1\Downloads\TEST\test.xml"
foreach ($bien in $xmlContent.biens.bien) {
$bienDpt = $bien.'bien-identification'.'bien-dpt'
$bienProgramme = $bien.'bien-identification'.'bien-programme'
$bienCode = $bien.'bien-identification'.'bien-code'
# Remplacer bien-programme selon les règles spécifiées
switch ($bienDpt) {
22 { $bienProgramme = "12$($bienProgramme)" }
29 { $bienProgramme = "19$($bienProgramme)" }
35 { $bienProgramme = "13$($bienProgramme)" }
56 { $bienProgramme = "15$($bienProgramme)" }
}
# Remplacer bien-code selon les règles spécifiées
$bienCode = $bienCode -replace '\.(\d{2})\.', ''
# Vérifier si l'élément <prg-uge-code> existe avant de le mettre à jour
$prgUgeCodeElement = $bien.'prg-uge-code'
if ($prgUgeCodeElement) {
$prgUgeCode = $prgUgeCodeElement.InnerText
# Transcoder le code agence
switch -wildcard ($prgUgeCode) {
"AG122" { $prgUgeCode = $prgUgeCode -replace '1', '' }
"AG129" { $prgUgeCode = $prgUgeCode -replace '1', '' }
"AG135" { $prgUgeCode = $prgUgeCode -replace '1', '013' }
"AG136" { $prgUgeCode = $prgUgeCode -replace '1', '001' }
}
# Mettre à jour <prg-uge-code> uniquement s'il existe
$prgUgeCodeElement.InnerText = $prgUgeCode
}
# Mettre à jour les valeurs dans le XML
$bien.'bien-identification'.'bien-programme' = $bienProgramme
$bien.'bien-identification'.'bien-code' = $bienCode
}
# Enregistrer le nouveau fichier XML
$xmlContent.Save("C:\Users\user1\Downloads\TEST\fichier_modifié.xml")
Les champs sont bien modifiés. Maintenant il faut que ce script soit joué sur tous les fichiers du conteneur TEST. Et il faut aussi que je configure l'envoi de mail de confirmation si erreur.
[xml]$xmlContent = Get-Content -Path "C:\Users\user1\Downloads\TEST\test.xml"
foreach ($bien in $xmlContent.biens.bien) {
$bienDpt = $bien.'bien-identification'.'bien-dpt'
$bienProgramme = $bien.'bien-identification'.'bien-programme'
$bienCode = $bien.'bien-identification'.'bien-code'
# Remplacer bien-programme selon les règles spécifiées
switch ($bienDpt) {
22 { $bienProgramme = "12$($bienProgramme)" }
29 { $bienProgramme = "19$($bienProgramme)" }
35 { $bienProgramme = "13$($bienProgramme)" }
56 { $bienProgramme = "15$($bienProgramme)" }
}
# Remplacer bien-code selon les règles spécifiées
$bienCode = $bienCode -replace '\.(\d{2})\.', ''
# Vérifier si l'élément <prg-uge-code> existe avant de le mettre à jour
$prgUgeCodeElement = $bien.'prg-uge-code'
if ($prgUgeCodeElement) {
$prgUgeCode = $prgUgeCodeElement.InnerText
# Transcoder le code agence
switch -wildcard ($prgUgeCode) {
"AG122" { $prgUgeCode = $prgUgeCode -replace '1', '' }
"AG129" { $prgUgeCode = $prgUgeCode -replace '1', '' }
"AG135" { $prgUgeCode = $prgUgeCode -replace '1', '013' }
"AG136" { $prgUgeCode = $prgUgeCode -replace '1', '001' }
}
# Mettre à jour <prg-uge-code> uniquement s'il existe
$prgUgeCodeElement.InnerText = $prgUgeCode
}
# Mettre à jour les valeurs dans le XML
$bien.'bien-identification'.'bien-programme' = $bienProgramme
$bien.'bien-identification'.'bien-code' = $bienCode
}
# Enregistrer le nouveau fichier XML
$xmlContent.Save("C:\Users\user1\Downloads\TEST\fichier_modifié.xml")
Les champs sont bien modifiés. Maintenant il faut que ce script soit joué sur tous les fichiers du conteneur TEST. Et il faut aussi que je configure l'envoi de mail de confirmation si erreur.
Connexion ou Créer un compte pour participer à la conversation.
- MortyDead
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 4
- Remerciements reçus 0
il y a 1 an 10 mois - il y a 1 an 10 mois #33838
par MortyDead
Réponse de MortyDead sur le sujet Manipulation de fichiers et transcodage
Ce script semble pas mal. Pour le mail, le smtp est nécessaire. Pour l'erreur, vous voulez vérifier quoi?
Dernière édition: il y a 1 an 10 mois par MortyDead.
Connexion ou Créer un compte pour participer à la conversation.
- Dead
-
Auteur du sujet
- Hors Ligne
- Membre senior
-
Réduire
Plus d'informations
- Messages : 73
- Remerciements reçus 2
il y a 1 an 10 mois #33874
par Dead
Réponse de Dead sur le sujet Manipulation de fichiers et transcodage
Bonjour,
Mon script tourne pile poil. Assez content de moi, près de 140 lignes! Mais tout fonctionne correctement; Merci pour votre aide à tous!
Mon script tourne pile poil. Assez content de moi, près de 140 lignes! Mais tout fonctionne correctement; Merci pour votre aide à tous!
Connexion ou Créer un compte pour participer à la conversation.
- ericlm128
- Visiteur
-
il y a 1 an 10 mois #33875
par ericlm128
Réponse de ericlm128 sur le sujet Manipulation de fichiers et transcodage
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.114 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- Manipulation de fichiers et transcodage