-
FlexPro
- Auf einen Blick
- Features & Optionen
- Einsatzgebiete
- Alle Vorteile
- Neu in FlexPro 2021
- FlexPro gratis testen
- FlexPro View OEM Freeware
- Kaufberatung
- Login
- Language
- +49 6894 929600
- infoweisang.com
- Google Maps
- Produkte
- News
- Support
- Unternehmen
- Jobs
- Kontakt
- Login
- Language
- +49 6894 929600
- infoweisang.com
- Google Maps
Home > Community > FPScript > Datensatz mit FPScript nach Vorgabe erstellen > Antwort auf: Datensatz mit FPScript nach Vorgabe erstellen
Mit der Funktion Date() wird durch ‘Nullsetzen’ der Zeit das Datum aus einer Kalenderzeit bestimmt, liefert also genau den Startzeitpunkt des gewünschten Datensatzes. Mit der gewünschten Schrittweite von 8 h kann mit der Series()-Funktion die 1er-Zeitpunkte als Datenreihe berechnet werden:
Dim zeit_ein = Series(Date(datum_start), datum_end, 8 h)
Zu beachten ist allerdings, das die Datenreihe in der Länge so berechnet wird, dass der letzte Wert den geringsten Abstand zum gewünschten Endpunkt hat; er kann also auch über diesem liegen. Wenn die ein Problem sein sollte, muss man von der Datenreihe alle bis aufs letzte Element weiterverwenden:
If zeit_ein[-1] > datum_end Then
zeit_ein = zeit_ein[0, -2]
End
Man lege sich dann Datenreihen für die x- und y-Komponente des gewünschten Resultats an:
Dim M = NumberOfRows(zeit_ein)
Dim x = CalendarTime ? # 2 * M
Dim y = ? # 2 * M
Durch Adressieren der geraden und ungeraden Elemente können die Ein- und Aus-Zeitpunkte in jeweils einer Zuweisung gesetzt werden:
Dim i_ein = (M, 0L, 2L)
Dim i_aus = i_ein + 1L
x[i_ein] = zeit_ein
y[i_ein] = 1
x[i_aus] = zeit_ein + 1 s
y[i_aus] = 0
Signal(y, x)
Generell sollte man stets versuchen, auf eine Schleife über Datenreihen zu verzichten. Dabei leisten wie hier gezeigt die Indizierung mittels Datenreihen gute Dienste. Diese Indexdatenreihen können etwa auch mit den Funktionen der Ereignisisolation erzeugt werden.