Zeichen aus Zeichenfolge an bestimmter Position löschenHallo,
Ich möchte ein Skript erstellen, um ein Zeichen aus einer Zeichenfolge zu entfernen und gleichzeitig dasselbe Zeichen weiter oben in der Zeichenfolge zu ignorieren.
Beispielsweise habe ich aus einer Datentabelle eine spezielle Datums- und Uhrzeitangabe von JJ/MM/TT/hh:mm und möchte das dritte / (dh Zeichen 9) entfernen.

Vielen Dank für jede Hilfe,
Lukas
Erweiterte statistische ModellierungAutomatisierung und SkripterstellungMassenanpassungQualitäts- und VerfahrenstechnikWindowsBetreff: Zeichen aus Zeichenfolge an bestimmter Position löschenKönnte nur ein einfacher Fehler bei den Spaltenverweisen sein.
Names Default To Here(1);
dt = New Table("Untitled 5",
Add Rows(3),
New Column("DateTime", Character, "Nominal", Set Values({"21/10/24/15:21", "21/10/24/14:21", "20/09/20/15:20"}))
);
/*
other solutions
a = "21/10/24/15:21";
//other solution with Regex
Show(Regex(a, "^(.{8})(.)(.*)$", "\1 \3"));
//using Words and Concat Items
Show(Concat Items(Words(a, "/")[1 :: 3], "/") || " " || Word(4, a, "/"));
//Using Contains to get last "/" and then Substr()
lastIdx = Contains(a, "/", -1);
Substr(a, 1, lastIdx - 1) || " " || Substr(a, lastIdx + 1);
*/
dt << New Column("Compatible DateTime", Formula(Left(:DateTime, 8)</img> || " " || Right(:DateTime, 5)));(Beachten Sie, dass die neue Spalte ohne zusätzliche JSL nicht numerisch fortlaufend sein wird.)
Betreff: Zeichen aus Zeichenfolge an bestimmter Position löschenHallo Craige, ich habe das versucht, aber es scheint, als würden beim Versuch, es zu verwenden, Fehlermeldungen angezeigt:

Möglicherweise verstehe ich es falsch, wenn ich versuche, eine neue Spalte mit den Daten zu erstellen:

Bitte entschuldigen Sie auch, dass ich aus irgendeinem Grund nicht als JLS-Skript an die erforderliche Screencap senden konnte
Betreff: Zeichen aus Zeichenfolge an bestimmter Position löschenEs gibt viele Ansätze. Wenn die Zeichenfolgen immer die gleiche Länge usw. haben, verwende ich möglicherweise eine Formelspalte mit
Left( DateTime, 8 ) || "T" || Right( DateTime, 5 );
Möglicherweise möchten Sie ein Trennzeichen wie T, das von einem der internationalen Formate verwendet wird: jjjj-mm-ttThh:mm.
Wenn es Abweichungen gibt, aber vielleicht immer das dritte /, verwende ich möglicherweise Regex in der Formelspalte
Regex( DateTime, "^(\d+/\d+/\d+)/(\d+:\d+)$", "\1T\2" );
^ und $ verankern die Übereinstimmung am Anfang und Ende der DateTime-Zeichenfolge. \d+ entspricht einer oder mehreren Ziffern. Die Klammern bilden Gruppen, und die beiden Gruppen werden mit \1T\2 referenziert, um den Ergebniswert zu erstellen.