Dynamischer Daten Import / Export

datenbank

weil Einfach - produktiver ist
Mit der Freeware Version können bis zu 10.000 Datensätze verarbeitet werden!
Willkommen, Gast
Benutzername: Passwort: Angemeldet bleiben:
Willkommen im FlowHeater Support Forum!

Hier werden Fragen zum Umgang mit dem FlowHeater beantwortet.

THEMA: CSV Daten gruppieren

CSV Daten gruppieren 5 Jahre 9 Monate her #303

  • FlowHeater-Team
  • FlowHeater-Teams Avatar
  • Offline
  • Administrator
  • Beiträge: 1099
Anfrage per Email erhalten

Hallo,

ich erhalte verschiedene Messwerte welche ich auswerten soll. Leider lässt sich das verwendete Format nicht ohne vorherige Konvertierung bearbeiten. Die einzelnen Werte stehen dabei untereinander, siehe Beispiel.

Beispieldaten
Time point;Value;Unit
17.02.2011 19:48;31413212;Device Number
<Unknown Device Type>;0;Device State
31413212;31413212;Fabrication Number
;23577;Volume [m3]
17.02.2011 19:49;48950917;Device Number
...

Da ich nicht sicher bin, ob und wie FlowHeater mir an dieser Stelle helfen kann, möchte ich Sie um Hilfe bitten. Ich möchte die Werte aber gruppiert in einer Zeile stehen haben.

Zeitpunkt;Device Number 1;Device Number 2
23.02.2011 14:29;Messwert 1;Messwert 2
23.02.2011 14:30;Messwert 1;Messwert 2
23.02.2011 14:31;Messwert 1;Messwert 2

Also, erste Spalte für den Zeitpunkt der Messwerterfassung; die zweite für den Messwert von Device Number 1 zum Zeitpunkt der Messwerterfassung; die dritte Spalte für den Messwert von Device Number 2 zum Zeitpunkt der Messwerterfassung; und so weiter.
Ist das möglich? Und wenn ja, wie?

Mit freundlichen Grüßen
M. Karsten
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.
Der Administrator hat öffentliche Schreibrechte deaktiviert.

Aw: CSV Daten gruppieren 5 Jahre 9 Monate her #304

  • FlowHeater-Team
  • FlowHeater-Teams Avatar
  • Offline
  • Administrator
  • Beiträge: 1099
Das ist leider etwas komplexer, aber möglich. Das Problem dabei ist Ihr erstes Feld "Time Point/Zeitpunkt". Das wird hier nicht bei jeder Zeile mitgeliefert, sowie stehen in den 2 nachfolgenden Werten andere Werte darin?!

Um das zu lösen, benötigen wir als erstes den .NET Script Heater. Folgendes kleine Skript schaut im Feld "Time Point" nach ob an der 3 Stelle ein Punkt vorkommt und geht dann davon aus, dass somit ein Datum vorliegt. Dieses Datum gibt der .NET Script Heater zurück und merkt sich zusätzlich den Wert solange bis ein neues Datum = Punkt an 3 Stelle ankommt, usw.
string lastTP = String.Empty;
public object DoWork()
{
	object o = InValues[0].GetString();
	if ( o != null )
	{
		string s = (string)o;
		if (s.Length >= 3 && s.Substring(2, 1) == ".")
			lastTP = s;
	}

	return lastTP;
}

Der Output des .NET Script Heaters wandert einmal zu einem GroupBy Heater und dann noch 1:1 auf die WRITE Seite in das Feld "Zeitpunkt".
Der GroupBy Heater gruppiert nun alle gleichen Datumswerte zu einer CSV Zeile auf der WRITE Seite. Um nun noch die einzelnen Werte der CSV Zeilen zu einer Spalte zuzuweisen, benötigen Sie für jedes Feld noch einen IF-THEN-ELSE Heater. Hier muss geprüft werden ob der Wert vom Feld "UNIT" gleich Spalte1 (oder Device State, ...) ist. Wenn das der Fall ist wandert der Output der IF-THEN-ELSE Bedingung in das Feld Spalte1 (oder Device State, ...) der WRITE Seite. Dieses Vorgehen ist notwendig, ansonsten würde in jeder Spalte der WRITE Seite immer nur der letzte Wert der Gruppierung stehen! Sie benötigen somit für jede Spalte die Sie in die CSV Datei auf der WRITE Seite ausgeben möchten einen IF-THEN-ELSE Heater.

Im Anhang "csv_gruppierung.zip" finden Sie dazu ein kleines Beispiel.

Anhang csv_gruppierung.zip nicht gefunden

Anhang:
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.
Der Administrator hat öffentliche Schreibrechte deaktiviert.

Aw: CSV Daten gruppieren 5 Jahre 6 Monate her #435

  • mischa
  • mischas Avatar
  • Offline
  • New Member
  • Beiträge: 1
Hallo Herr Stark,

erst mal danke für Ihre Hilfe. Ihre Beispieldatei funktioniert mit den zwei Messungen einwandfrei.
Bei Verwendung der angehängten Datei bekomme ich allerdings lediglich die Messwerte der ersten Messung (Device Number 31413212) ausgewertet. Alle weiteren werden vollständig ignoriert. Ich habe schon ein wenig ausprobiert, bin aber nicht weiter gekommen. Wären Sie so nett, mir noch einmal unter die Arme zu greifen?

Mit freundlichen Grüßen,

M. Karsten
Anhang:
Der Administrator hat öffentliche Schreibrechte deaktiviert.

Aw: CSV Daten gruppieren 5 Jahre 6 Monate her #438

  • FlowHeater-Team
  • FlowHeater-Teams Avatar
  • Offline
  • Administrator
  • Beiträge: 1099
Hallo Herr Karsten,

das Problem liegt darin, dass in Ihrer CSV Datei oft die gleichen Datumsangaben stehen

z.B.
1. Messung 17.02.2011 19:48
2. Messung 17.02.2011 19:48

Das erste Beispiel gruppierte immer nach diesen Wert! Kommen mehrere solcher Werte nacheinander fasst/gruppiert der FlowHeater diese zu einem Datensatz zusammen.

Ich habe das Bespiel angepasst, so dass pro Messung eine eindeutige Gruppierung vorgenommen wird.

Anhang csv_gruppierung-20110527.zip nicht gefunden

Anhang:
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.
Der Administrator hat öffentliche Schreibrechte deaktiviert.
Moderatoren: FlowHeater-Team
Ladezeit der Seite: 0.082 Sekunden