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 a los comentarios mediante programación, excepto usando algún tipo de feo truco en el lado de los comentarios.
Descubrí una manera más agradable de lograr esto.Adjunto el bloque de comentarios del encabezado dentro de JSL Quote() que engaña al intérprete de JSL para que mantenga mi bloque de comentarios en lugar de eliminarlo.Así que 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>
Re: ¿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";
;]\")); ¿Obtener el contenido completo del script de la tabla (incluidos los comentarios)?Estoy intentando idear 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 guardaré algunos metadatos sobre cada uno de los scripts.Por ejemplo, el campo "categoría de script" que está encerrado 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 del encabezado, por lo que no puedo acceder a los metadatos contenidos en esos comentarios.
¿Hay alguna manera de obtener el lleno ¿Texto de un script de tabla, incluidos los comentarios?
Automatización y secuencias de comandos