Hallo,
Ich verwalte ein Add-In für mein Unternehmen, in dem alle Daten über Befehlszeilenprogramme, die unserem Automatisierungsteam gehören, in JMP importiert werden. Mein Add-In übersetzt eine Benutzeranfrage in einen formatierten Befehl und gibt den Befehl im Hintergrund aus. Die Daten werden als Textdatei auf das System des Benutzers zurückgesendet. Mein Addin kann dann die Daten aus der Textdatei laden.
Das Problem, das ich habe, ist, dass die Spalten je nach Benutzeranforderung variieren. Aber jede Tabelle hat eine Spalte DATE (Format: YYYYMMDD) und TIME (Format: HHMMSS), die durchgehend vorhanden sind. Ich habe keine Möglichkeit gefunden, eine Textdatei zu öffnen, in der ich die Formate für einige Spalten festlege, aber JMP die Datentypen für den Rest interpretieren lasse.
Die aktuelle Implementierung erfordert, dass ich die DATE- und TIME-Spalten in Zeichentypen umwandle, die Zeit in HHMMSS mit führenden Nullen formatiere und dann die Tabelle durchlaufe, um die DATE-Spalte in ein Datum zu parsen und die HH-, MM- und SS-Teile zu konvertieren in Sekunden, damit ich sie dem DATE-Teil hinzufügen kann.
dt = Current Data Table();
:DATE << Data Type(character);
:TIME << Data Type(character);
:TIME << Set Each Value(Repeat("0", 6-Length(:TIME))||:TIME);
dt << New Column("DATETIME");
:DATETIME << Format("m/d/y h:m:s");
For Each Row(
:DATETIME[Row()] = Parse Date(:DATE[Row()], "YYYYMMDD") +
In Hours(Num(Substr(:TIME[Row()], 1, 2))) +
In Minutes(Num(Substr(:TIME[Row()], 3, 2))) +
Num(Substr(:TIME[Row()], 5))
);
Gibt es eine sauberere Möglichkeit, die DATE- und TIME-Spalten zu einer einzigen DATETIME-Spalte zu verbinden?