WinccFlexible Meldungen Auswerten

Roland Christ

Level-1
Beiträge
2
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo benötige Hilfe bei Auswertung, von Meldungen.
Folgende Daten sind vorhanden und sollten nach Anzahl und Summe Zeit ausgegeben werden.

Archiv von WinccFlexible in Excel Format.

Time_ms StateAfter MsgNumber TimeString MsgText
39875677772 1 2609 03.03.2009 16:16 S609
39875677860 0 2609 03.03.2009 16:16 S609
39875679118 1 2849 03.03.2009 16:17 S849
39875679169 0 2849 03.03.2009 16:18 S849

Sortierung sollte so aussehen:

MsgText Anzahl Zeitdauer
S2609 1 00:00:01
S2849 1 00:01:02

Gruss Roland
 
Willst du also in Excel die Auswertung machen?
Mal als Ansatz:

Die Datei in Excel öffnen. Eine VBA-Funktion zur Auswertung schreiben, die man z.Bsp. per Button in einem Formular anstößt.

Diese Funktion könnte folgendermaßen vorgehen:

1. Es sollte ja bekannt sein, wieviele Meldungen das System insgesamt hat.
Mit dieser Information würde ich ein mehrdimensionales Array anlegen.
1 - Nummer (ok, die Nummer soll der Dimension 1 des Array entsprechen, also ist das eigentlich nicht nötig, aber übersichtlich)
2 - Anzahl
3 - Dauer
4 - Text (muß nicht zwingend sein, vereinfacht aber später die Ausgabe)

2. dann würde ich die geöffnete Datei zeilenweise abarbeiten.
Ich geh mal davon aus, das die Time in ms der eigentliche Zeitstempel im Format Date-Time ist. (Korrigiert mich, wenn das nicht stimmt)
Also, Zeile 1 wenn State 1, dann kommende Meldung
--> Nummer + Daten merken)
--> Zeile 2 gleiche Nummer suchen dort muß State 0 sein. Ist der State der selben Nummer 1, --> Fehler, (Zählung dieser Nummer weglassen??? Mal nachdenken darüber, sollte ja eigentlich nicht vorkommen, aber wer weiß)
--> Wenn State 0 ist, ist das ok --> Time in ms voneinander abziehen, das sollte dann die Dauer in ms sein
--> nun im Array bei der korrespondierenden Nummer (also Meldung 623 --> Arraylemente 623) im Feld 2 die Anzahl um 1 erhöhen, im Feld 3 die neue Dauer, zur im Feld schon vorhanden dazuaddieren, im Feld 4 einfach jedesmal den Text eintragen, was solls, man machts halt mehrmals :)

Wenn das erledigt ist, ab der nächsten Zeile (im Bsp., Zeile 2) nach einem State = 1 suchen, wenn keiner vorhanden, nächste Zeile

Wenn am Ende angekommen, also nichts mehr im Feld Nummer steht, dann das mehrdimensionale Array in eine Exceltabelle ausgeben.
Dabei würde ich nur die Felder berücksichtigen, die als Anzahl >= 1 enthalten.

Mit einem VBA-Buch und der Excel-Hilfe sollte man das in etwa so erledigen können.
 
Zuletzt bearbeitet:
Zurück
Oben