none
Tabellen Objekt erstellen und per out-gridview ausgeben RRS feed

  • Frage

  • Hallo zusammen,

    angenommen ich habe eine csv Datei mit folgendem Inhalt:

    Nachname,Vorname,Beginn
    Hirsch,Harry,2012-12-02
    Dachs,Dieter,2011-11-04

    Dann könnte ich mir mit:

    $objcsv = Import-Csv c:\user.csv
    $objcsv | out-gridview

    total easy die Daten schön in einer Tabelle ausgeben und sortieren, je nachdem wie ich sie brauche. So bräuchte ich es...

    Ein weiteres Beispiel, wie sowas super funktioniert:

    get-process | Out-GridView

     Das Problem ist jetzt, eigentlich habe ich keine csv Datei, sondern die Daten werden halt in der Session zusammengestellt.

    Jetzt könnte ich natürlich den dreckigen Weg gehen und mir ne CSV Datei schreiben und gleich wieder einlesen, aber das kann ja nicht im Sinne des Erfinders sein.

    Ich blicke jetzt leider nicht, wie ich mir z.B. mit meinen Beispieldaten ne alternative Tabelle bauen kann, die ich wie die csv mit out-gridview ausgeben kann.

    Hashtable reicht nicht, da ich ja nicht nur Schlüssel und Wert habe. Auch wenn ich als Wert wieder einen zusätzlichen Hashtable benutze funktioniert die Ausgabe nicht wie bei der CSV.

    Arrays, mehrdimensionale Arrays... Ich krieg es auf diesem Weg nicht hin.

    Jetzt hätte ich noch versucht, daß per import-csv erzeugte Objekt nachzubauen mit Geschichten wie:

    $Object = New-Object PSObject                                       
    $Object | add-member Noteproperty ???

    Aber da fehlt mir noch das Verständnis.

    Kann doch eigentlich nicht so schwierig sein oder? Ich habe das Gefühl ich stehe irgendwie auf dem Schlauch, aber der Groschen fällt nicht ;)

    Kann mir jemand auf die Sprünge helfen?

    Danke!

    Gruß

    Rainer



    Donnerstag, 16. Februar 2012 15:24

Antworten

  • Du bist schon auf dem richtigen Weg. Du erstellst ein Array, erzeugst pro Datensatz ein Objekt und fügst dieses dem Array hinzu. Wenn ein Datensatz beispielsweise jeweils die drei Werte: "Nachname,Vorname,Beginn" beinhaltet, dann so:

    # einmal am Anfang:
    
    $DataArray = New-Object System.Collections.Generic.List[object]
    
    # jedesmal wenn einer neuer Datensatz anfällt:
    
    $Obj =  New-Object Psobject -Property @{
    	Nachname= $name
    	Vorname = $firstname
    	Beginn = $start
    }
    
    $DataArray.add($obj)
    
    # Wenn alle Objekte hinzugefügt wurden:
    
    $DataArray | Out-Gridview

    Wenn beim Erzeugen eines neuen Objekts alle Properties bereits bekannt sind, kann man die Folge von "add-member Noteproperty..." - Befehlen wie oben gezeigt zusammenfassen und alle Properties direkt mitgeben.

    $DataArray
    kannst du dann wieder mit out-gridview ausgeben. Wie das Ganze nun in deinem Fall genau aussehen würde, hängt davon ab wie deine Daten genau aussehen.

    Grüße, Denniver


    Blog: http://bytecookie.wordpress.com

    Hilf mit und markiere hilfreiche Beiträge als "Hilfreich" und Beiträge die deine Frage ganz oder teilweise beantwortet haben als "Antwort".

    Donnerstag, 16. Februar 2012 16:58
    Moderator

Alle Antworten

  • Du bist schon auf dem richtigen Weg. Du erstellst ein Array, erzeugst pro Datensatz ein Objekt und fügst dieses dem Array hinzu. Wenn ein Datensatz beispielsweise jeweils die drei Werte: "Nachname,Vorname,Beginn" beinhaltet, dann so:

    # einmal am Anfang:
    
    $DataArray = New-Object System.Collections.Generic.List[object]
    
    # jedesmal wenn einer neuer Datensatz anfällt:
    
    $Obj =  New-Object Psobject -Property @{
    	Nachname= $name
    	Vorname = $firstname
    	Beginn = $start
    }
    
    $DataArray.add($obj)
    
    # Wenn alle Objekte hinzugefügt wurden:
    
    $DataArray | Out-Gridview

    Wenn beim Erzeugen eines neuen Objekts alle Properties bereits bekannt sind, kann man die Folge von "add-member Noteproperty..." - Befehlen wie oben gezeigt zusammenfassen und alle Properties direkt mitgeben.

    $DataArray
    kannst du dann wieder mit out-gridview ausgeben. Wie das Ganze nun in deinem Fall genau aussehen würde, hängt davon ab wie deine Daten genau aussehen.

    Grüße, Denniver


    Blog: http://bytecookie.wordpress.com

    Hilf mit und markiere hilfreiche Beiträge als "Hilfreich" und Beiträge die deine Frage ganz oder teilweise beantwortet haben als "Antwort".

    Donnerstag, 16. Februar 2012 16:58
    Moderator
  • Besten Dank! Genau was ich brauche!
    Freitag, 17. Februar 2012 11:47