Gesamten Inhalt des Tabellenskripts (einschließlich Kommentare) abrufen?Ich versuche, ein System zu entwickeln, um alle JSL-Skripte zu organisieren, die an meine Datentabelle angehängt sind.Ich möchte in den Kommentaren oben in jedem meiner Skripte eine Kopfzeile einfügen.Es wird so aussehen:
/* ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * **
* Script Name: my script name
* Script Category: <<CATEGORY>>
* Author: author name
* Rev Date: date
* Purpose: purpose
* * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * */</CATEGORY>
Innerhalb dieses Headers werde ich einige Metadaten zu jedem der Skripte speichern.Zum Beispiel das Feld "Skriptkategorie", das in spitze Klammern eingeschlossen ist.Ich möchte in der Lage sein, die Skripte zu durchlaufen und sie basierend auf diesen Metadaten zu manipulieren.
Ich weiß, dass ich eine Liste aller an meine Datentabelle angehängten Skripte wie folgt erhalten kann:
dt = Current Data Table();
scriptList = dt << Get Table Script Names;
Und dann kann ich den Inhalt eines Skripts wie folgt abrufen:
scriptText = Char(dt << Get Table Property(scriptList[1]));
Der scriptText enthält jedoch keine Kommentare.Der Header-Abschnitt fehlt, daher kann ich nicht auf die in diesen Kommentaren enthaltenen Metadaten zugreifen.
Gibt es eine Möglichkeit die zu bekommen voll Text eines Tabellenskripts, einschließlich Kommentare?
SkripterstellungBetreff: Gesamten Inhalt des Tabellenskripts abrufen (einschließlich Kommentare)?Vielen Dank.Das hatte ich befürchtet - es gibt keine Möglichkeit, programmgesteuert auf die Kommentare zuzugreifen, außer mit einer Art hässlichem Kludge auf der Kommentarseite der Dinge.
Ich habe einen schöner aussehenden Weg gefunden, dies zu erreichen.Ich schließe den Header-Kommentarblock in JSL Quote() ein, wodurch der JSL-Interpreter dazu gebracht wird, meinen Kommentarblock beizubehalten, anstatt ihn zu löschen.Jetzt kann ich also das Kategoriefeld lesen und entsprechend verwenden.
Hier ist mein Beispielskript:
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>Und die Ausgabe ins Log:
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>
Betreff: Gesamten Inhalt des Tabellenskripts abrufen (einschließlich Kommentare)?Die einzige Möglichkeit, die ich kenne, um das zu umgehen, besteht darin, jeden Kommentar in eine Dummy-Literalzeichenfolge zu platzieren
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";
;]\"));