Ottieni l'intero contenuto dello script della tabella (inclusi i commenti)?Sto cercando di trovare un sistema per organizzare tutti gli script JSL allegati alla mia tabella di dati.Voglio inserire un'intestazione nei commenti nella parte superiore di ciascuno dei miei script.Sembrerà così:
/* ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * **
* Script Name: my script name
* Script Category: <<CATEGORY>>
* Author: author name
* Rev Date: date
* Purpose: purpose
* * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * */</CATEGORY>
All'interno di questa intestazione conserverò alcuni metadati su ciascuno degli script.Ad esempio, il campo "categoria script" racchiuso tra parentesi angolari.Voglio essere in grado di scorrere gli script e manipolarli in base a questi metadati.
So che posso ottenere un elenco di tutti gli script allegati alla mia tabella dati in questo modo:
dt = Current Data Table();
scriptList = dt << Get Table Script Names;
E poi posso ottenere il contenuto di uno script come questo:
scriptText = Char(dt << Get Table Property(scriptList[1]));
Tuttavia, scriptText non contiene alcun commento.La sezione dell'intestazione è mancante, quindi non posso accedere ai metadati contenuti in quei commenti.
C'è un modo per ottenere il completo testo di uno script di tabella, inclusi i commenti?
SceneggiaturaRe: Ottieni l'intero contenuto dello script della tabella (inclusi i commenti)?Grazie.Questo è ciò di cui avevo paura: non c'è modo di accedere a livello di codice ai commenti se non usando una sorta di brutto scherzo sul lato dei commenti delle cose.
Ho trovato un modo più bello per ottenere questo risultato.Racchiudo il blocco di commento dell'intestazione all'interno di JSL Quote() che induce l'interprete JSL a mantenere il mio blocco di commenti invece di eliminarlo.Quindi ora posso leggere il campo della categoria e usarlo di conseguenza.
Ecco il mio script di esempio:
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>E l'output nel 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: Ottieni l'intero contenuto dello script della tabella (inclusi i commenti)?L'unico modo che conosco per aggirare questo problema è inserire ogni commento in una stringa letterale fittizia
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";
;]\"));