¿Cómo puedo escapar de "=" como parte del nombre de una columna?<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />¿Cómo puedo escapar de "=" como parte del nombre de una columna?
Necesito implementar una instrucción "seleccionar dónde" y la estoy creando como una cadena, que involucra varios nombres de columnas. Pero cuando evalúa, intenta interpretar el "=" como una tarea. Los nombres de mis columnas son como: "COND=TEMP".
Debajo de la sección del script que uso:
seleccionar_cadena = ": Nombre de la prueba == nombre del banco para comparar" ;
//Para cada columna en la tabla del mapa, si el nombre de la columna es COND, agréguelo a los criterios de selección
Para ( j = 1 , j <= número de columnas , j ++,
Tabla de datos actuales ( correlaciónMapaTabla ) ;
nombre de columna actual = correlaciónMapaTabla << Obtener nombres de columnas () ;
Si ( Contiene ( nombre de columna actual [ j ] , "COND_" ) > 0 ,
el valor = nombre de columna actual [ j ][ i ] ;
colNombre = nombre de columna actual [ j ] ;
seleccionar_cadena = seleccionar_cadena || "& Como columna(correlationMapTable," || carbonizarse ( nombre de columna actual [ j ]) || ") == " || carbonizarse ( nombre de columna actual [ j ][ i ]) ;
) ;
) ;
seleccionar_cadena = "benchDataTable << seleccione dónde(" || seleccionar_cadena || ")" ;
evaluar ( analizar gramaticalmente ( seleccionar_cadena )) ; // Aquí hay una queja si tengo "=" como parte del nombre de la columna.
bancoDatosTabla << Subconjunto (( Filas seleccionadas ) , Nombre de la tabla de salida ( "Mesa de banco filtrada" )) ;
¡Gracias de antemano!
Re: ¿Cómo puedo escapar "=" como parte del nombre de una columna?Sí, comillas.Gracias por la captura.
Para obtener más información sobre los caracteres de escape y los matices de JSL, puede consultar la Guía de secuencias de comandos, que está muy bien elaborada.Ayuda >> Libros >> Guía de secuencias de comandos.(Los caracteres de escape están en la página 87).Si simplemente se pregunta acerca de la sintaxis, el Índice de secuencias de comandos es más útil.Ayuda>>Índice de secuencias de comandos.
Un par de cosas para señalar,
Para números en sentencias If(), JSL responde verazmente a cualquier valor distinto de 0. Entonces Si ( Contiene ( nombre de columna actual [ j ] , "COND_" ) > 0, es lo mismo que Si ( Contiene ( nombre de columna actual [ j ] , "COND_" ) ,
Este:
//Para cada columna en la tabla del mapa, si el nombre de la columna es COND, agréguelo a los criterios de selección
Para ( j = 1 , j <= número de columnas , j ++,
Tabla de datos actuales ( correlaciónMapaTabla ) ;
nombre de columna actual = correlaciónMapaTabla << Obtener nombres de columnas () ;
Si ( Contiene ( nombre de columna actual [ j ] , "COND_" ) > 0 ,
el valor = nombre de columna actual [ j ][ i ] ;
colNombre = nombre de columna actual [ j ] ;
estaría mejor escrito:
//Para cada columna en la tabla del mapa, si el nombre de la columna es COND, agréguelo a los criterios de selección
Para ( j = 1 , j <= número de columnas , j ++,
colName = Columna( correlaciónMapTable, j) << Obtener nombre ;
Si ( Contiene ( colNombre , "COND_" ) ,
Re: ¿Cómo puedo escapar "=" como parte del nombre de una columna?Oye, breinoso,
Sí, no he existido el tiempo suficiente para conocer el origen de los caracteres de escape en JSL, pero de hecho comienzan con "\!".Para insertar una nueva línea en una cadena, es "\!n".Para evitar que JMP vea una comilla como el final de una cadena, conviértala en \!". (Y creo que msharp quiso decir "lo que necesita escapar es comillas ").
Y sí, pasar de otros lenguajes a JSL puede resultar un poco desagradable ;-).
HTH,
eric
Re: ¿Cómo puedo escapar "=" como parte del nombre de una columna?Hola msharp,
Gracias por tomarte el tiempo de responder. Entonces, ¿podría aclarar que la secuencia de escape requerida es \! \! ?
Como programador de C#, me duele mucho la cabeza con solo aprender JSL 
Saludos,
B
Re: ¿Cómo puedo escapar "=" como parte del nombre de una columna?Seré honesto, este script tiene muchos problemas.Me duele la cabeza sólo de pensar en depurarlo.
Así que no lo haré, pero esencialmente tu problema es el siguiente:
= no es necesario escapar, lo que necesitas escapar es paréntesis comillas.También conocido como:
evaluar ( analizar gramaticalmente ( "dt << Seleccione Dónde(Columna(" Cond. = Temperatura ") == 2)" )) ;
necesita convertirse en:
evaluar ( analizar gramaticalmente ( "dt << Seleccionar dónde(Columna(\!"Cond=Temp\!") ==2)" )) ;