Betreff: Gesamten Inhalt des Tabellenskripts abrufen (einschließlich Kommentare)?Danke.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";
;]\")); Gesamten Inhalt des Tabellenskripts abrufen (einschließlich Kommentare)?Ich versuche, ein System zu entwickeln, um alle an meine Datentabelle angehängten JSL-Skripte zu organisieren.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>
In diesem Header 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 bearbeiten.
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 erhalten:
scriptText = Char(dt << Get Table Property(scriptList[1]));
Der scriptText enthält jedoch keinen der Kommentare.Der Kopfzeilenabschnitt fehlt, daher kann ich nicht auf die in diesen Kommentaren enthaltenen Metadaten zugreifen.
Gibt es eine Möglichkeit, das zu bekommen? voll Text eines Tabellenskripts, inklusive Kommentare?
Automatisierung und Skripterstellung