Ri: ottenere l'intero contenuto dello script della tabella (compresi 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 kludge sul lato dei commenti delle cose.
Ho trovato un modo più carino per farlo.Allego il blocco dei commenti dell'intestazione all'interno di JSL Quote() che induce l'interprete JSL a mantenere il mio blocco dei 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>
Ri: ottenere l'intero contenuto dello script della tabella (compresi 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";
;]\")); Ottieni l'intero contenuto dello script della tabella (compresi i commenti)?Sto cercando di trovare un sistema per organizzare tutti gli script JSL allegati alla mia tabella dati.Voglio inserire un'intestazione nei commenti nella parte superiore di ciascuno dei miei script.Apparirà 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 nessuno dei commenti.Manca la sezione dell'intestazione, quindi non posso accedere ai metadati contenuti in tali commenti.
C'è un modo per ottenere il file pieno testo di uno script di tabella, inclusi i commenti?
Automazione e scripting