Question
Comparaison 2 CSV => Fichier
- Niamor
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 8
- Remerciements reçus 0
il y a 10 ans 2 mois #21292
par Niamor
Réponse de Niamor sur le sujet Re:Comparaison 2 CSV => Fichier
En effet, je débute vraiment.
Je n'ai pas compris ta phrase, sur les lignes et les objets.
Peux-tu me donner plus d'explications ? ou m'indiquer comment connaître cette différence ?
A vrai dire je sais pas vraiment ce que fait :
[code:1]
$output = @() |
ForEach {
$curr=$_
[/code:1]
Le switch est-il fonctionnel ?
Merci
Message édité par: Niamor, à: 15/01/16 13:28<br><br>Message édité par: Niamor, à: 15/01/16 14:10
Je n'ai pas compris ta phrase, sur les lignes et les objets.
Peux-tu me donner plus d'explications ? ou m'indiquer comment connaître cette différence ?
A vrai dire je sais pas vraiment ce que fait :
[code:1]
$output = @() |
ForEach {
$curr=$_
[/code:1]
Le switch est-il fonctionnel ?
Merci
Message édité par: Niamor, à: 15/01/16 13:28<br><br>Message édité par: Niamor, à: 15/01/16 14:10
Pièces jointes :
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 2 mois #21297
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:Comparaison 2 CSV => Fichier
Niamor écrit:
Niamor écrit:
Comprend déjà cette notion essentielle, si tu veux comprendre tout le reste .
Niamor écrit:
@() est une déclaration de tableau vide.
Essaie d'énumérer 'rien'...
Ce code ne fait donc rien
Niamor écrit:
La réponse est non car le code que tu lui couples est faux. La propriété group n'existe pas sur les objets renvoyés par le cmdlet Compare-Objet.
Mais la syntaxe de cette instruction switch est correcte.
Niamor écrit:
Oublie ce code est écrit du pseudocode, c'est à dire ce que ton traitement doit réaliser.
Ensuite tu le transposeras en instructions Powershell.
Il te faut juste prendre le temps d'apprendre.
J'ai bien compris.En effet, je débute vraiment.
Niamor écrit:
Tu peux lire ce tutoriel .m'indiquer comment connaître cette différence ?
Comprend déjà cette notion essentielle, si tu veux comprendre tout le reste .
Niamor écrit:
Merci de ton honnêtetéA vrai dire je sais pas vraiment ce que fait
@() est une déclaration de tableau vide.
Essaie d'énumérer 'rien'...
Ce code ne fait donc rien
Niamor écrit:
Comme indiqué précédemment, c'est la voie à suivre.Le switch est-il fonctionnel ?
La réponse est non car le code que tu lui couples est faux. La propriété group n'existe pas sur les objets renvoyés par le cmdlet Compare-Objet.
Mais la syntaxe de cette instruction switch est correcte.
Niamor écrit:
Normal, tu vas plus vite que la musiqueDe plus quand j'essaye de modifier quelque chose dans ce petit script.
J'ai commme erreur ...
Oublie ce code est écrit du pseudocode, c'est à dire ce que ton traitement doit réaliser.
Ensuite tu le transposeras en instructions Powershell.
Il te faut juste prendre le temps d'apprendre.
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- Niamor
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 8
- Remerciements reçus 0
il y a 10 ans 2 mois #21298
par Niamor
Réponse de Niamor sur le sujet Re:Comparaison 2 CSV => Fichier
Merci pour ton aide !
Je vais regarder de suite les documents.
Mon pseudo code :
[code:1]
\"J'ai deux colonnes de noms à comparer et je souhaite afficher les différences dans un fichier\"
J'importe mon fichier ancien
J'importe mon fichier nouveau
Dans mon fichier ancien, dans la colonne nom
Je récupère \"cellule par cellule\" les noms (Ex: Baptiste)
Je compare si ma cellule et connu dans mon nouveau fichier (Ex: Si Baptiste est connu)
Si \"Baptiste\" est connu je recommence pour la prochaine valeur
Si \"Baptiste\" est inconnu de mon nouveau fichier
Alors je le stock dans un tableau \"différences\"
Et je recommence pour la prochaine valeur
A la fin s'il y a des différences, je crée un fichier et j'ajoute toutes les différences trouvés.[/code:1]
Je vais regarder de suite les documents.
Mon pseudo code :
[code:1]
\"J'ai deux colonnes de noms à comparer et je souhaite afficher les différences dans un fichier\"
J'importe mon fichier ancien
J'importe mon fichier nouveau
Dans mon fichier ancien, dans la colonne nom
Je récupère \"cellule par cellule\" les noms (Ex: Baptiste)
Je compare si ma cellule et connu dans mon nouveau fichier (Ex: Si Baptiste est connu)
Si \"Baptiste\" est connu je recommence pour la prochaine valeur
Si \"Baptiste\" est inconnu de mon nouveau fichier
Alors je le stock dans un tableau \"différences\"
Et je recommence pour la prochaine valeur
A la fin s'il y a des différences, je crée un fichier et j'ajoute toutes les différences trouvés.[/code:1]
Connexion ou Créer un compte pour participer à la conversation.
- Niamor
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 8
- Remerciements reçus 0
il y a 10 ans 2 mois #21299
par Niamor
Réponse de Niamor sur le sujet Re:Comparaison 2 CSV => Fichier
Ma première base
[code:1]$new=import-csv F:\6-PowerShell\newname.CSV -Header Name -Delimiter \";\"
$old=import-csv F:\6-PowerShell\oldname.CSV -Header Name -Delimiter \";\"
$diff=Compare-Object $old $new -Property Name
$diff | Export-Csv -path F:\6-PowerShell\Difference.csv -UseCulture -NoTypeInformation[/code:1]
[code:1]$new=import-csv F:\6-PowerShell\newname.CSV -Header Name -Delimiter \";\"
$old=import-csv F:\6-PowerShell\oldname.CSV -Header Name -Delimiter \";\"
$diff=Compare-Object $old $new -Property Name
$diff | Export-Csv -path F:\6-PowerShell\Difference.csv -UseCulture -NoTypeInformation[/code:1]
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 2 mois #21300
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:Comparaison 2 CSV => Fichier
>>J'ai deux colonnes de noms à comparer
La notion de colonne n'existe pas dans un objet, on parle de propriété.
Laisse les colonnes dans Excel. Il faut essayer d'adopter les termes d'un langage qui manipule des objets puisque ton traitement se fait avec PS et pas avec XL.
Selon tes dires tu manipules une propriété d'un objet et une seule, c'est bien ça ?
>>et je souhaite afficher les différences dans un fichier
Le terme afficher est dédié à la présentation (l'écran), 'Enregistrer' est plus précis.
Autre point important sous Powershell, il faut séparer la création des données et leur présentation.
Ainsi tu crées un seul traitement de création de données :
[code:1]
#Tableau
$Datas=@(1,2,3)
#ou
$Datas=Compare-Object $F1 $F2 -Property Name ...
[/code:1]
Puis un ou + traitements d'affichage :
[code:1]
Write-Host \"$Datas\"
$Datas|Foreach-Object {Write-Host \"Donnée courante = $_\" }
$Datas|Export-CSV ...
$Datas|Export-Clixml ...
$Datas|Out-Gridview ...
$Datas|Out-Word ...
$Datas|Out-PDF ...
[/code:1]
Certaines de ces instructions affichent directement à l'écran, d'autres nécessites une application tierce qui se charge de l'affichage.
>>J'importe mon fichier ancien
Je crée des objet à partir d'un fichier .CSV
Je peux utiliser le cmdlet Get-Content pour importer le contenu d'un fichier, mais (pour simplifier) cela ne crée pas d'objet. La propriété Nom n'existerait pas.
Niamor écrit:
Sans cela on ne sait pas ce que tu manipules
La notion de colonne n'existe pas dans un objet, on parle de propriété.
Laisse les colonnes dans Excel. Il faut essayer d'adopter les termes d'un langage qui manipule des objets puisque ton traitement se fait avec PS et pas avec XL.
Selon tes dires tu manipules une propriété d'un objet et une seule, c'est bien ça ?
>>et je souhaite afficher les différences dans un fichier
Le terme afficher est dédié à la présentation (l'écran), 'Enregistrer' est plus précis.
Autre point important sous Powershell, il faut séparer la création des données et leur présentation.
Ainsi tu crées un seul traitement de création de données :
[code:1]
#Tableau
$Datas=@(1,2,3)
#ou
$Datas=Compare-Object $F1 $F2 -Property Name ...
[/code:1]
Puis un ou + traitements d'affichage :
[code:1]
Write-Host \"$Datas\"
$Datas|Foreach-Object {Write-Host \"Donnée courante = $_\" }
$Datas|Export-CSV ...
$Datas|Export-Clixml ...
$Datas|Out-Gridview ...
$Datas|Out-Word ...
$Datas|Out-PDF ...
[/code:1]
Certaines de ces instructions affichent directement à l'écran, d'autres nécessites une application tierce qui se charge de l'affichage.
>>J'importe mon fichier ancien
Je crée des objet à partir d'un fichier .CSV
Je peux utiliser le cmdlet Get-Content pour importer le contenu d'un fichier, mais (pour simplifier) cela ne crée pas d'objet. La propriété Nom n'existerait pas.
Niamor écrit:
Donnes-nous un exemple concret de la structure et du contenu de ton fichier en modifiant les données que tu jugeras privées.Ma première base
Sans cela on ne sait pas ce que tu manipules
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- Niamor
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 8
- Remerciements reçus 0
il y a 10 ans 2 mois #21308
par Niamor
Réponse de Niamor sur le sujet Re:Comparaison 2 CSV => Fichier
En effet, j'ai bien noté maintenant que :
Nom de l'objet.Information (=> Propriété)
En effet, j'ai une unique propriété à comparer c'est le Nom
Je souhaite en effet, enregistrer dans un fichier les différences de nom.
Exemple :
Fichier old
[code:1]
Nom
CD009
Lolo
Titi
PT039
[/code:1]
Fichier New
[code:1]
Nom
Baba
Titi
Momo
Lolo
PT039
Exo09
[/code:1]
Fichier Résultats (souhaité)
[code:1]
Nom
CD009
// car c'est le seul à ne pas être connu dans New
[/code:1]
Merci
Message édité par: Niamor, à: 18/01/16 11:57<br><br>Message édité par: Niamor, à: 18/01/16 11:57
Nom de l'objet.Information (=> Propriété)
En effet, j'ai une unique propriété à comparer c'est le Nom
Je souhaite en effet, enregistrer dans un fichier les différences de nom.
Exemple :
Fichier old
[code:1]
Nom
CD009
Lolo
Titi
PT039
[/code:1]
Fichier New
[code:1]
Nom
Baba
Titi
Momo
Lolo
PT039
Exo09
[/code:1]
Fichier Résultats (souhaité)
[code:1]
Nom
CD009
// car c'est le seul à ne pas être connu dans New
[/code:1]
Merci
Message édité par: Niamor, à: 18/01/16 11:57<br><br>Message édité par: Niamor, à: 18/01/16 11:57
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.052 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- Comparaison 2 CSV => Fichier