FlowHeater Demo Video
 
Der Daten Import / Export Spezialist
 
Willkommen, Gast
Benutzername: Passwort: Angemeldet bleiben:
Schauen Sie sich auch die verfügbaren Beispiele zum TextFile Adapter an evtl. kann Ihre Frage hiermit schon beantwortet werden: Codepage konvertieren 1 / 2 , Verarbeitung von CSV Kopf- und Fußzeilen , Import und Export von vCard Textdateien
  • Seite:
  • 1

THEMA:

CSV-Zeile mit sehr vielen identischen Spalten auf mehrere Zeilen verteilen 11 Monate 2 Wochen her #3858

  • Jost Broichmann
  • Jost Broichmanns Avatar Autor
  • Offline
  • Beiträge: 2
Ich habe eine Datenquelle die CSV Dateien mit sehr langen Zeilen auswirft. Es handelt sich um Messeinrichtungen, die zu einem Zeitpunkt Messwerte in eine Zeile schreiben. Die Spalten wiederholen sich, gekennzeichnet wird eine neue Messeinrichtung durch eine neue Anlagennummer.

Prinzipiell sehen die Daten wie folgt aus:

Date;Time;ID;WertA;WertB;WertC;ID;WertA;WertC;WertD;ID;WertA;WertB;WertC
25.11.19;19:30;1;11;12;13;2;21;23;24;3;31;32;33 

Ziel ist ein Import in SQL, da kann jede Spalte nur 1x vorkommen, die Zeilen ergeben sich aus den Anlagen-IDs

DateTime;ID;WertA;WertB;WertC;WertD
19-11-25 19:30;1;11;12;13;Null
19-11-25 19:30;2;21;Null;23;24
19-11-25 19:30;3;31;32;33;Null

Die DateTime-Umrechung bekomme ich hin, die sortierte Aufteilung auf mehrere Zeilen nicht. Über einen Tipp wäre ich dankbar.

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Letzte Änderung: von Jost Broichmann. Begründung: Word-Formatierung

CSV-Zeile mit sehr vielen identischen Spalten auf mehrere Zeilen verteilen 11 Monate 2 Wochen her #3859

  • FlowHeater-Team
  • FlowHeater-Teams Avatar
  • Offline
  • Beiträge: 1561
Hallo Herr Broichmann,

um aus einer CSV Zeile mehrere Zeilen oder aber Datensätze zu generieren benötigen Sie einmal den GroupOut Heater . Dieser kopiert die aktuelle READ Zeile n-Mal. Wenn wie in Ihrem Beispiel 3x Wertepaare vorhanden sind müssen Sie für n=2 verwenden, so dass diese Zeile insgesamt 3x verarbeitet wird. 1x Original + 2 Kopien. Der Wert wird einfach statisch über einen X-Value Heater übergeben.

Dann benötigen Sie einen AutoID Heater . Diesen müssen Sie so konfigurieren, dass hiermit die kopierten bzw. gruppierten CSV Zeilen gezählt werden. Hierzu müssen Sie die Option „GroupOut“ aktivieren, siehe Screenshot.

Dann wird es etwas mühselig. Jetzt müssen Sie noch entscheiden, dass beim originalen Datensatz (AutoID Zähler = 1) die ersten Werte verwendet werden, beim zweiten Datensatz (AutoID Zähler = 2) die zweiten Werte, usw.

Hierzu habe ich im angehängten Beipspiel einen .NET Script Heater mit unten stehen C# Skript verwendet. Der .NET Script Heater erhält als ersten Eingangsparameter den Wert des oben eingefügten AutoID Heaters . Zusätzliche fügen Sie hier alle ID Werte hinzu. Achtung hier müssen Sie die Reihenfolge einhalten so wie diese in der CSV Datei vorhanden sind. Also erster ID Wert, zweiter ID Wert, dritter ID Wert, usw. Das Skript gibt dann je nach Verarbeitung den richtigen Wert zurück. Sie benötigen für jedes Ausgabefeld auf der WRITE Seite einen separaten .NET Script Heater . Das Vorgehen sowie das Skript sind dann immer gleich.

Klingt etwas kompliziert. Ich denke, wenn Sie sich das angehängte Beispiel dazu ansehen wird etwas einfacher zu verstehen sein.

C# Skript um die richtigen Wertepaare auszugeben
public object DoWork()
{
  // AutoID Zähler holen = ersten Eingangsparameter
  int i = (int)InValues[0].GetInt();

  // den richtigen Wert anhand der Eingangsreihenfolge zurückliefern
  return InValues[i];
}





Dateianhang:

Dateiname: csv-spalte...ilen.zip
Dateigröße:3 KB

gruß
Robert Stark

Wurde Ihre Frage damit beantwortet? Bitte geben Sie ein kurzes Feedback, Sie helfen damit auch anderen die evtl. ein ähnliches Problem haben. Danke.
Anhänge:
Folgende Benutzer bedankten sich: Jost Broichmann

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

gruß
Robert Stark

Wurde Ihre Frage damit beantwortet? Bitte geben Sie ein kurzes Feedback, Sie helfen damit auch anderen die evtl. ein ähnliches Problem haben. Danke.

CSV-Zeile mit sehr vielen identischen Spalten auf mehrere Zeilen verteilen 11 Monate 2 Wochen her #3860

  • Jost Broichmann
  • Jost Broichmanns Avatar Autor
  • Offline
  • Beiträge: 2
Hallo Herr Stark,

vielen Dank! Ich habe das in der Zwischenzeit mit mehreren InMemory-Adaptern in der Write-Seite probiert, die im 2. Schritt in SQL geschrieben werden. Geht auch, ist aber ein ziemliches Geklicke und evtl. fehleranfälliger, als ein paar saubere Zeilen Code.

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

  • Seite:
  • 1

andere Sprachen

en

FlowHeater Home

de en

Impressum/Kontakt

Datenschutz

Copyright © 2009-2020 by FlowHeater GmbH.
Alle Rechte vorbehalten.

Follow us on

twitter  facebook

YouTube

 de en