Résolu Manipulation de fichiers et transcodage

Plus d'informations
il y a 2 mois 1 semaine #33834 par Dead
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!

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

Plus d'informations
il y a 2 mois 1 semaine - il y a 2 mois 1 semaine #33835 par Dead
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.
Dernière édition: il y a 2 mois 1 semaine par Dead.

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

Plus d'informations
il y a 2 mois 1 semaine #33836 par Dead
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.

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

Plus d'informations
il y a 2 mois 1 semaine - il y a 2 mois 1 semaine #33838 par MortyDead
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 2 mois 1 semaine par MortyDead.

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

Plus d'informations
il y a 1 mois 3 semaines #33874 par Dead
Bonjour,

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.

Plus d'informations
il y a 1 mois 3 semaines #33875 par ericlm128
Super si ça tourne et que tu as pu progressé en plus

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

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