Question Comparaison de deux fichiers CSV

Plus d'informations
il y a 11 ans 2 mois #18739 par Philippe
comme tu peut le voir avec le get-member $list ne contient pas 'EmailAddress','FirstName', 'LastName' et 'LastLogin'
donc le select de export-csv ne sert pas et bloque le flux des autres données du pipe

par contre export-csv te donne les longueurs car il attend un objet en entrée pas une arraylist

mais si tu utilise set-content tu te retrouve avec les valeurs mais en une dimension seulement

j'ai pas la solution de suite, peut être Laurent si il suis le fil
sinon cherche sur le web et on regardera le résultat des que je serai disponible.<br><br>Message édité par: 6ratgus, à: 7/01/15 11:13

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

Plus d'informations
il y a 11 ans 2 mois #18740 par alex
Réponse de alex sur le sujet Re:Comparaison de deux fichiers CSV
J'ai pensé à utiliser le StringBuilder pour convertir les objets en chaîne mais je ne pense pas que ce soit efficace.

Je me demandais également si utiliser un Foreach-Object à la place d'un simple foreach pouvait m'aider ?

Ou peut-être remplacer le $List.add par un $List | Add-Member qui me permettrai d'ajouter un -Property ?<br><br>Message édité par: Helongh, à: 6/01/15 16:27

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

Plus d'informations
il y a 11 ans 2 mois #18741 par Philippe
Helongh écrit:

Je me demandais également si utiliser un Foreach-Object à la place d'un simple foreach pouvait m'aider ?

non, foreach est un alias de Foreach-Object

Ou peut-être remplacer le $List.add par un $List | Add-Member qui me permettrai d'ajouter un -Property ?

c'est revenir au début avec le problème de lenteur que tu veux évité

pour le moment j'ai trouver cette astuce :
[code:1]$list | foreach {\&quot;$($_[0]),$($_[1]),$($_[2]),$($_[3]),$($_[4]),\&quot;} | Set-Content \&quot;c:\names.csv\&quot;[/code:1]

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

Plus d'informations
il y a 11 ans 2 mois #18742 par alex
Réponse de alex sur le sujet Re:Comparaison de deux fichiers CSV
Merci, mais cette astuce ne me donne pas toutes les informations du fichier.

Sinon j'ai également pensé à faire un pipe directement dans l'import-csv avec un where-object, si l'on peut utiliser un foreach dedans ?

Par exemple :

[code:1]
$Names = Import-Csv c:\Users\names.csv
$Users = Import-Csv c:\User\users.csv | Where-Object { foreach ($Users in $User) { foreach ($Name in $Names) { $User.FirstName -eq $Name.FirstName -and $User.LastName -eq $Name.LastName }}}
[/code:1]<br><br>Message édité par: Helongh, à: 7/01/15 10:53

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

Plus d'informations
il y a 11 ans 2 mois #18743 par Philippe

Merci, mais cette astuce ne me donne pas toutes les informations du fichier.


si tu a bien vu comment j'ai fait chaque élément de ton tableau est accessible par les crochets $_[x]
si tu a 5 informations tu va de 0 à 5
tu rajoute autant de $_[x] que tu a besoin
un exemple pour un tableau de 9 \&quot;informations\&quot; :
[code:1]\&quot;$($_[0]),$($_[1]),$($_[2]),$($_[3]),$($_[4]),$($_[5]),$($_[6]),$($_[7]),$($_[8])\&quot; [/code:1]
pour que l'on t'aide plus précisément tu doit nous donnez des information plus précis : type données dans le fichiers, sous quel format, l'entête, un exemple/extrait des fichiers est le top
sinon tu doit comprendre et adapter le code que l'on te donne ou nous demander des précisions si ta pas compris le code

Sinon j'ai également pensé à faire un pipe directement dans l'import-csv avec un where-object, si l'on peut utiliser un foreach dedans ?

là j'ai pas compris ce que tu veut faire ?!!
ton probleme est bien que le fichier enregistrer est vide ou presque ?<br><br>Message édité par: 6ratgus, à: 7/01/15 11:12

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

Plus d'informations
il y a 11 ans 2 mois #18744 par alex
Réponse de alex sur le sujet Re:Comparaison de deux fichiers CSV
Très bien, je vais reprendre du début, de toute manière mes besoins ont légèrement changés.

J'ai donc deux fichiers CSV, L'un contenant une liste complète d'utilisateurs avec comme champs pour chaque utilisateur : EmailAddress, FirstName, Lastname, LastLogin, FirstLogin.
L'autre contient uniquement : FirstName, LastName.

Je ne peux pas vous envoyer un extrait du contenu de ces fichiers car ils contiennent des vrais utilisateurs.

Les fichiers sont séparés par des virgules, le format est sans doute en UTF-8, celui de base lors d'un extract de Google Sheets.
Les données à l'intérieur sont donc de simples chaînes de caractères.

Maintenant mon but est donc de comparer ces deux fichiers, en récupérant dans un nouveau CSV les champs : EmailAddress, FirstName, Lastname, LastLogin, FirstLogin des utilisateurs n'étant PAS dans le second fichier (e.g ceux dont les FirstName et LastName du premier n'existent pas dans le second)

Voilà, si il y a toujours un problème de clarté n'hésitez pas à m'en faire part.

Cordialement.

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

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