Question Comparaison 2 CSV => Fichier

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

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

Plus d'informations
il y a 10 ans 2 mois #21297 par Laurent Dardenne
Niamor écrit:

En effet, je débute vraiment.

J'ai bien compris.
Niamor écrit:

m'indiquer comment connaître cette différence ?

Tu peux lire ce tutoriel .
Comprend déjà cette notion essentielle, si tu veux comprendre tout le reste .


Niamor écrit:

A vrai dire je sais pas vraiment ce que fait

Merci de ton honnêteté :)
@() est une déclaration de tableau vide.
Essaie d'énumérer 'rien'...
Ce code ne fait donc rien :P
Niamor écrit:

Le switch est-il fonctionnel ?

Comme indiqué précédemment, c'est la voie à suivre.
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:

De plus quand j'essaye de modifier quelque chose dans ce petit script.
J'ai commme erreur ...

Normal, tu vas plus vite que la musique :lol:

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.

Plus d'informations
il y a 10 ans 2 mois #21298 par Niamor
Réponse de Niamor sur le sujet Re:Comparaison 2 CSV =&gt; Fichier
Merci pour ton aide !

Je vais regarder de suite les documents.

Mon pseudo code :
[code:1]
\&quot;J'ai deux colonnes de noms à comparer et je souhaite afficher les différences dans un fichier\&quot;

J'importe mon fichier ancien
J'importe mon fichier nouveau

Dans mon fichier ancien, dans la colonne nom
Je récupère \&quot;cellule par cellule\&quot; les noms (Ex: Baptiste)

Je compare si ma cellule et connu dans mon nouveau fichier (Ex: Si Baptiste est connu)

Si \&quot;Baptiste\&quot; est connu je recommence pour la prochaine valeur

Si \&quot;Baptiste\&quot; est inconnu de mon nouveau fichier

Alors je le stock dans un tableau \&quot;différences\&quot;

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.

Plus d'informations
il y a 10 ans 2 mois #21299 par Niamor
Réponse de Niamor sur le sujet Re:Comparaison 2 CSV =&gt; Fichier
Ma première base

[code:1]$new=import-csv F:\6-PowerShell\newname.CSV -Header Name -Delimiter \&quot;;\&quot;
$old=import-csv F:\6-PowerShell\oldname.CSV -Header Name -Delimiter \&quot;;\&quot;

$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.

Plus d'informations
il y a 10 ans 2 mois #21300 par Laurent Dardenne
&gt;&gt;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 ?

&gt;&gt;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 \&quot;$Datas\&quot;
$Datas|Foreach-Object {Write-Host \&quot;Donnée courante = $_\&quot; }

$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.

&gt;&gt;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:

Ma première base

Donnes-nous un exemple concret de la structure et du contenu de ton fichier en modifiant les données que tu jugeras privées.
Sans cela on ne sait pas ce que tu manipules :unsure:

Tutoriels PowerShell

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

Plus d'informations
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 (=&gt; 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
Propulsé par Kunena