Quitar el final de una cadena de longitud variableHola a todos,
Tengo una columna: Protocolo que contiene cadenas de longitud variable en el formato Carácter, Nominal. Agregué algunos ejemplos a continuación. Estoy tratando de eliminar los últimos 4 caracteres de la cadena de la columna y conservar todo lo demás. Los últimos 4 caracteres son siempre uno de: -001, -002, -003 o -004. Intenté lograr esto usando Word () y Substr () pero no puedo hacer que funcione:
Protocolo
AAA-BB-1234-19 -001
AAAA-B-18 -002
AA-BBB-123-18- 003
AA-B-CC-1001-19- 002
Así es como quiero que se vea la columna para esas 4 filas:
Protocolo
AAA-BB-1234-19
AAAA-B-18
AA-BBB-123-18
AA-B-CC-1001-19
He intentado lograr esto usando las funciones de Word () de la siguiente manera:
For Each Row(
:Protocol = Word(1, :Protocol, "00")
);
ScriptingRe: quitar el final de una cadena de longitud variableAlgo como Izquierda (: Protocolo, Longitud (: Protocolo) - 4)Re: quitar el final de una cadena de longitud variableestoy de acuerdo con @David_Burnham , puede obtener resultados directamente usando la izquierda, si realmente desea usar la palabra, tal vez pueda consultar esta a continuación (también adjunté la tabla de datos en el archivo adjunto):
Names Default To Here( 1 );
Clear Log();
dt = Current Data Table();
new_col = dt << New Column( "Trimmed Protocol",
character,
formula( Word( [1 -2], :Protocol, "-" ) )
);
Re: quitar el final de una cadena de longitud variableTambién pensé en usar la función Left (). Aquí está mi opinión:
Names Default to Here( 1 );
string = "AAA-BB-1234-19-001";
Left( string, Contains( string, "00") - 2 );
Le recomiendo que seleccione Ayuda> Índice de secuencias de comandos y seleccione Funciones> Carácter. Hay mucho soporte integrado para manipular cadenas de caracteres.