Elimina carattere dalla stringa In una posizione specificaCiao,
Sto cercando di creare uno script per rimuovere un carattere da una stringa ignorando lo stesso carattere in precedenza nella stringa.
Ad esempio, da una tabella di dati ho un DateTime speciale di YY/MM/DD/hh:mm e desidero rimuovere il terzo / (cioè il carattere 9).

Grazie per tutto l'aiuto,
Luca
Modellazione statistica avanzataAutomazione e scriptingPersonalizzazione di massaQualità e ingegneria di processofinestreRi: Elimina carattere da stringa in una posizione specificaPotrebbe essere solo un semplice errore con i riferimenti di colonna.
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)));(Nota che la nuova colonna non sarà Numeric Continuous senza qualche jsl extra)
Ri: Elimina carattere da stringa in una posizione specificaCiao Craige, l'ho provato ma sembra che riceva errori quando provo a usarlo:

Potrei capirlo in modo errato mentre sto tentando di creare una nuova colonna con i dati:

Mi scuso anche, per qualche motivo non sono stato in grado di inviare come script JLS allo screencap richiesto
Ri: Elimina carattere da stringa in una posizione specificaCi sono molti approcci. Se le stringhe hanno sempre la stessa lunghezza, ecc., potrei usare una colonna formula con
Left( DateTime, 8 ) || "T" || Right( DateTime, 5 );
Potresti volere un separatore come T che viene utilizzato da uno dei formati internazionali, aaaa-mm-ggThh:mm.
Se c'è qualche variazione, ma forse sempre il terzo /, potrei usare l'espressione regolare nella colonna della formula
Regex( DateTime, "^(\d+/\d+/\d+)/(\d+:\d+)$", "\1T\2" );
^ e $ ancorano la corrispondenza all'inizio e alla fine della stringa DateTime. \d+ corrisponde a 1 o più cifre. Le parentesi creano gruppi e ai due gruppi viene fatto riferimento con \1T\2 per creare il valore del risultato.