Supprimer le caractère de la chaîne dans une position spécifiqueBonjour,
Je cherche à créer un script pour supprimer un caractère d'une chaîne tout en ignorant le même caractère plus tôt dans la chaîne.
Par exemple, à partir d'une table de données, j'ai un DateTime spécial de AA/MM/JJ/hh:mm et je souhaite supprimer le troisième / (c'est-à-dire le caractère 9).

Merci pour toute aide,
Luc
Modélisation statistique avancéeAutomatisation et scriptPersonnalisation de masseIngénierie de la qualité et des procédésles fenêtresRe : Supprimer le caractère de la chaîne dans une position spécifiquePeut-être juste une simple erreur avec les références de colonne.
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)));(Notez que la nouvelle colonne ne sera pas numérique continue sans quelques jsl supplémentaires)
Re : Supprimer le caractère de la chaîne dans une position spécifiqueBonjour Craige, j'ai essayé cela mais semble avoir des erreurs en essayant de l'utiliser:

Je ne le comprends peut-être pas correctement car j'essaie de créer une nouvelle colonne avec les données :

Toutes mes excuses, pour une raison quelconque, je n'ai pas pu envoyer de script JLS à la capture d'écran requise
Re : Supprimer le caractère de la chaîne dans une position spécifiqueIl existe de nombreuses approches. Si les chaînes ont toujours la même longueur, etc., je pourrais utiliser une colonne de formules avec
Left( DateTime, 8 ) || "T" || Right( DateTime, 5 );
Vous voudrez peut-être un séparateur comme T qui est utilisé par l'un des formats internationaux, aaaa-mm-jjThh:mm.
S'il y a une variation, mais peut-être toujours le troisième /, je pourrais utiliser regex dans la colonne de formule
Regex( DateTime, "^(\d+/\d+/\d+)/(\d+:\d+)$", "\1T\2" );
^ et $ ancrent la correspondance au début et à la fin de la chaîne DateTime. \d+ correspond à 1 ou plusieurs chiffres. Les parenthèses forment des groupes, et les deux groupes sont référencés par \1T\2 pour construire la valeur du résultat.