Le chiffrement entraîne l'échec de la création du script de création de mappe personnalisée?<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />J'écris un programme dans JMP 10 dans lequel un composant intégral est la génération automatique des trois fichiers * -XY.jmp, * -Name.jmp et * -Data.jmp nécessaires à la définition des formes de carte dans Graphbuilder à l'aide du Personnalisation du créateur de la carte. Le rôle de mappage "Nom de forme" dans le fichier * -Data.jmp semble vouloir un emplacement de chemin de fichier absolu pour le fichier * -Name.jmp, je l'ai donc sauvegardé dans le répertoire "$ TEMP \", puis faire référence à son emplacement en tant que tel dans la propriété Map Role du fichier * -Data.jmp. Cela fonctionne parfaitement depuis des semaines maintenant sans aucun problème.
Maintenant que le reste du programme est prêt pour sa première distribution bêta, j’ai chiffré le code avant de l’envoyer aux membres du groupe de test. Maintenant que le programme est crypté, il ne peut pas localiser le fichier * -Name.jmp que j'ai enregistré et affiche ainsi un tas de fenêtres de constructeur de graphes blancs vierges, ainsi que le message "Formes non trouvées: "sous chacun. J'ai vérifié que le fichier est toujours créé au bon emplacement, exactement comme il l'était auparavant, et que si j'ouvre le datatable de l'un des graphiques vides et que je regarde la propriété de rôle de la carte de la colonne Nom, celle-ci répertorie le emplacement correct du fichier ici. Mais pour une raison quelconque, je ne parviens pas à afficher les formes de la carte sans déchiffrer le fichier de script.
Si quelqu'un spécule sur les raisons pour lesquelles cela se produit, comment il peut être corrigé ou s'il existe un autre moyen de faire pointer le fichier * -Data.jmp vers le fichier * -Name.jmp sans chemin absolu, veuillez me laisser savoir.
Re: Le cryptage provoque l'échec de la création de script personnaliséD'accord, j'ai trouvé un pas dans la bonne direction. Il y a deux scripts principaux: l'un est une interface graphique et appelle la fonction principale "make stuff happen" qui crée les cartes personnalisées. J'ai créé un complément qui inclut les deux fichiers principaux et modifié le code de sorte que tous les autres fichiers soient créés dans le dossier des compléments du programme. Le fichier de script de l’interface graphique peut être chiffré sans problème, et lire et écrire normalement dans d’autres fichiers. Le code dans le script de la fonction principale ne peut toutefois pas être chiffré sans le problème de formes de carte manquantes décrit dans l'article d'origine.
Ce que j’ai alors remarqué, c’est qu’avec le script chiffré uniquement, le fichier * -Name.jmp attribuait à la colonne "Name" la propriété "map role", mais que je ne le spécifiais pas comme "Définition du nom de la forme" c'est vide. Cela expliquerait pourquoi Changer l'emplacement ne semble pas aider, même si le rôle de carte "Utilisation du nom de la forme" indique le chemin d'accès correct au fichier et que le fichier est généré au bon endroit. Le script non chiffré spécifie le rôle comme il convient. Des idées sur la façon de faire fonctionner cela? Le programme crée un tas de cartes, il doit donc être fait dans l’ordre, pas après coup. Peut-être créer une fonction personnalisée ou simplement extraire une ligne de code et la coller dans un fichier non crypté séparé et l'inclure au bon endroit? C'est un peu bizarre si le déchiffrement modifie le code.
Comme note de côté, est le $ ADDIN_HOME désignation disponible dans JMP 9? Je pense que les addins ont été introduits dans JMP 8, mais je voudrais être sûr que les interprètes de JMP 9 JSL seront en mesure de comprendre cela.
Re: Le cryptage provoque l'échec de la création de script personnaliséVous n'êtes pas sûr que cela fonctionne, mais avez-vous essayé d'utiliser un complément pour votre application? Vous pouvez mettre vos ensembles de données dans le répertoire du complément et y faire référence par le nom "logique" du complément. Par exemple, si votre complément est défini par (com.abc.def.myapp), vous pouvez l'utiliser comme suit:
dt = ouvrir ( "$ ADDIN_HOME (com.abc.def.myapp) \ AAA-XY.jmp" ) ;