Avis de non-responsabilité : ce n'est pas tant une question qu'une réponse à une question. J'ai pensé à partager cela dans un article de blog, mais ce n'est peut-être pas le type de hack dont on peut être fier. Donc:
Au fond de moi, je cherchais un moyen d'intégrer des workflows JMP dans un journal afin que, lorsque je clique sur un bouton dans une démo, un nouveau workflow apparaisse, déjà rempli d'étapes. J'ai l'habitude de partager des journaux après les démos, donc je voulais que le flux de travail soit intégré dans le journal au lieu d'avoir à dire aux gens de "décompresser tout le contenu dans un seul dossier...".
Voici un script qui fait cela. En bref : le script demande un nom de fichier, puis crée du JSL pour recréer ce fichier sur le bureau de l'utilisateur et l'ouvrir. Le script est ensuite copié dans le presse-papiers, afin que je puisse le mettre dans un bouton d'un journal. Je l'ai testé avec quelques fichiers .jmpflow et .jmpdoe et cela fonctionne pour tous ceux avec lesquels je l'ai testé.
Voici le scénario. S'il existe une meilleure approche ou un meilleur endroit pour partager cela, faites-le-moi savoir.
//Create a pasteable script to recreate a jmpflow (or jmpdoe) file
//useful for embedding in demo journals
//v0.1
//Jed Campbell
//10/11/23
Names Default To Here (1);
nw = new window ("File Embed Tool",
Button Box( "Embed File into a Script",
//get file name/path
path = Pick File();
fname = Word( -1, path, "/" );
//load into memory
t = Load Text File( path );
//make quotes into escaped quotes
u = Substitute( t, "\!"", "\\!!\!"" );
//chunk together JSL into a string on clipboard
codea = "Save Text File (\!"$DESKTOP/"||fname||"\!", \!"" || u || "\!");";
codeb = "\!nOpen (\!"$DESKTOP/" || fname || "\!");";
script = codea || codeb;
Set Clipboard( script );
//msg user
Caption( "Script copied to clipboard." );
Wait( 1.5 );
Caption( remove );
)
);