Obtenir le nom du script actuel<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />J'essaie de trouver un moyen d'ajouter le nom d'un script au rapport créé par le script. Cela signifie que j'ai besoin d'obtenir une chaîne de texte du nom du script à un moment donné. Je peux que le répertoire du fichier de script :
sDir=Obtenir le répertoire par défaut();
et les fichiers dans ce répertoire :
lFiles=Fichiers dans répertoire(sDir);
Mais je n'ai pas trouvé de moyen d'obtenir uniquement le nom de fichier que j'obtiens du script que j'exécute actuellement. Le problème est que lors de la recherche ultérieure d'un rapport enregistré, je veux savoir exactement quel script a été exécuté pour produire ledit rapport.
S'il vous plaît aider.
Re : Obtenir le nom du script actuelJe ne sais pas depuis combien de temps cette fonction existe, car je suis assez nouveau dans JMP, et je viens de trouver cette fonction moi-même en essayant de résoudre un problème similaire, mais il semble que la fonction "Include File List()" renvoie une liste de ouvrir les fichiers qui sont dans le contexte du script en cours d'exécution. (En passant, la description de cette fonction n'est qu'une sorte d'information, comme c'est le cas pour la plupart des fonctions/méthodes/messages dans l'index de script ou les ressources en ligne.)
Il semble que si cette fonction est exécutée en haut du script avant que quoi que ce soit d'autre ne soit ouvert par le script, le chemin du fichier de script et le nom du fichier de script peuvent en être extraits car c'est le seul chemin renvoyé à ce stade.
Lorsque je l'ai testé avec d'autres fichiers ouverts dans JMP et que j'ai exécuté le script en double-cliquant dessus depuis l'Explorateur Windows (avec le script défini pour s'exécuter à l'ouverture sans ouvrir une fenêtre d'éditeur de script en incluant "//!" en haut du script ), je n'obtiens que le chemin de ce script renvoyé. Aucun des autres fichiers ouverts n'est renvoyé.
Re : Obtenir le nom du script actuelC'est exactement ce que j'ai fait. Merci
Re : Obtenir le nom du script actuelJe suis venu avec presque exactement le même script (la boucle "For") avant de poster ma question. Le problème est que je ne sais pas si le script qu'il renvoie est le script actuel. Si, par exemple, le même script est enregistré dans différentes versions dans le même dossier, j'obtiendrais une liste de fichiers .jsl. J'ai besoin d'obtenir le nom du script en cours d'exécution, quel que soit le nombre de scripts portant le même nom pouvant être enregistrés au même emplacement.
Re : Obtenir le nom du script actuelSi le script est exécuté à partir d'une fenêtre de script, l'approche directe dans l'exemple ci-dessous vous donne le nom du fichier.
scr_name = Current Window() << get window title;
dt = Open("$SAMPLE_DATA/Big Class.jmp");
nw = New Window("My Report", Bivariate(Y(:weight), X(:height)), Text Box(scr_name));
Re : Obtenir le nom du script actuelJe ne sais pas s'il existe un moyen de le faire.J'ai défini une variable au début de chaque script.Un peu fastidieux mais aide au débogage.
nom = "Mon Script.JSL" ;
Re : Obtenir le nom du script actuelEssayez d'utiliser :
Contient (lFichiers , "script.jsl" ) ;
Je l'ai utilisé pour localiser une table JMP en utilisant ".jmp" et cela a fonctionné pour moi.
Ou si j'ai mal compris votre question, il existe un autre moyen de parcourir le nombre de fichiers dans le répertoire et d'obtenir le nom du fichier de script comme:
Pour ( n = 1 , n <= N articles ( lFichiers ) , n ++,
dossier =l des dossiers [ n ] ;
Si (
Se termine par ( dossier , ".jsl" ) ,/*Faire votre truc*/;
Casser();
);
);