Obtenir le contenu entier du script de table (y compris les commentaires) ?J'essaie de trouver un système pour organiser tous les scripts JSL attachés à ma table de données.Je souhaite insérer un en-tête dans les commentaires en haut de chacun de mes scripts.Il ressemblera à ceci:
/* ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * **
* Script Name: my script name
* Script Category: <<CATEGORY>>
* Author: author name
* Rev Date: date
* Purpose: purpose
* * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * */</CATEGORY>
À l'intérieur de cet en-tête, je conserverai des métadonnées sur chacun des scripts.Par exemple, le champ "catégorie de script" qui est entouré de crochets angulaires.Je veux pouvoir parcourir les scripts et les manipuler en fonction de ces métadonnées.
Je sais que je peux obtenir une liste de tous les scripts attachés à ma table de données comme ceci :
dt = Current Data Table();
scriptList = dt << Get Table Script Names;
Et puis je peux obtenir le contenu d'un script comme celui-ci:
scriptText = Char(dt << Get Table Property(scriptList[1]));
Cependant, le scriptText ne contient aucun des commentaires.La section d'en-tête est manquante, je ne peux donc pas accéder aux métadonnées contenues dans ces commentaires.
Existe-t-il un moyen d'obtenir le plein texte d'un script de tableau, y compris les commentaires ?
ScriptRe : Obtenir l'intégralité du contenu du script de table (y compris les commentaires) ?Merci.C'est ce dont j'avais peur - il n'y a aucun moyen d'accéder par programme aux commentaires, sauf en utilisant une sorte de vilaine bricole du côté des commentaires.
J'ai trouvé une façon plus agréable d'accomplir cela.Je joins le bloc de commentaire d'en-tête à l'intérieur de JSL Quote() qui incite l'interpréteur JSL à conserver mon bloc de commentaire au lieu de le supprimer.Alors maintenant, je peux lire le champ de catégorie et l'utiliser en conséquence.
Voici mon exemple de script :
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>Et la sortie dans le journal :
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 : Obtenir l'intégralité du contenu du script de table (y compris les commentaires) ?La seule façon que je connaisse pour contourner ce problème est de placer chaque commentaire dans une chaîne littérale factice
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";
;]\"));