¿Obtener el contenido completo de la secuencia de comandos de la tabla (incluidos los comentarios)?Estoy tratando de crear un sistema para organizar todos los scripts JSL adjuntos a mi tabla de datos.Quiero insertar un encabezado en los comentarios en la parte superior de cada uno de mis scripts.Se verá así:
/* ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * **
* Script Name: my script name
* Script Category: <<CATEGORY>>
* Author: author name
* Rev Date: date
* Purpose: purpose
* * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * */</CATEGORY>
Dentro de este encabezado, mantendré algunos metadatos sobre cada uno de los scripts.Por ejemplo, el campo "categoría de secuencia de comandos" que se incluye entre corchetes angulares.Quiero poder iterar sobre los scripts y manipularlos en función de estos metadatos.
Sé que puedo obtener una lista de todos los scripts adjuntos a mi tabla de datos de esta manera:
dt = Current Data Table();
scriptList = dt << Get Table Script Names;
Y luego puedo obtener el contenido de un script como este:
scriptText = Char(dt << Get Table Property(scriptList[1]));
Sin embargo, scriptText no contiene ninguno de los comentarios.Falta la sección de encabezado, por lo que no puedo acceder a los metadatos contenidos en esos comentarios.
¿Hay alguna manera de conseguir lleno texto de una secuencia de comandos de tabla, incluidos los comentarios?
ScriptingRe: obtener el contenido completo del script de la tabla (incluidos los comentarios)?La única forma que conozco de solucionar esto es colocar cada comentario en una cadena literal ficticia
dt=current data table();
eval(parse("\[dt << new script("mysct",
comment="/**************************************/";
names default to here(1);
dt=current data table();
comment="// Here come more comments";
;]\")); Re: obtener el contenido completo del script de la tabla (incluidos los comentarios)?Gracias.Eso es lo que temía: no hay forma de acceder programáticamente a los comentarios, excepto usando algún tipo de fealdad en el lado de los comentarios de las cosas.
Descubrí una forma más bonita de lograr esto.Incluyo el bloque de comentarios del encabezado dentro de JSL Quote () que engaña al intérprete JSL para que mantenga mi bloque de comentarios en lugar de eliminarlo.Entonces ahora puedo leer el campo de categoría y usarlo en consecuencia.
Aquí está mi script de ejemplo:
JSL Quote(
/* ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * **
* Script Name: my script name
* Script Category: <<MY category="">>
* Author: author name
* Rev Date: date
* Purpose: purpose
* * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * */
);
//this comment will be deleted
dt = Current Data Table();
scriptText = Char(dt << Get Table Property("my script name"));
scriptCategory = Char(Regex(scriptText,"\<\<([A-Za-z0-9 \/]*)\>\>", "\1"));
Write("\!n" || scriptText || "\!n");
Write("\!n" || scriptCategory || "\!n");</MY>Y la salida al registro:
JSL Quote(
/* ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * **
* Script Name: my script name
* Script Category: <<MY category="">>
* Author: author name
* Rev Date: date
* Purpose: purpose
* * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * */
); dt = Current Data Table(); scriptText = Char(dt << Get Table Property("my script name")); scriptCategory = Char(Regex(scriptText, "\<\<([A-Za-z0-9 \/]*)\>\>", "\1")); Write("
" || scriptText || "
"); Write("
" || scriptCategory || "
")
my category</MY>