Verschlüsselung führt dazu, dass das benutzerdefinierte Map-Erstellen-Skript fehlschlägt?<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Ich schreibe ein Programm in JMP 10, in dem eine integrale Komponente die automatische Erzeugung der drei Dateien * -XY.jmp, * -Name.jmp und * -Data.jmp ist, die zum Definieren von Map-Shapes in Graphbuilder mithilfe von erforderlich sind Add-In für benutzerdefinierte Map-Erstellung. Die Map-Rolle "Shape Name Use" in der * -Data.jmp-Datei scheint einen absoluten Dateipfad für die * -Name.jmp-Datei zu haben, daher muss ich diese Datentabelle im Verzeichnis "$ TEMP \" speichern und dann Verweisen Sie auf den entsprechenden Ort in der Map Role-Eigenschaft der Datei * -Data.jmp. Es funktioniert seit Wochen perfekt ohne Probleme.
Nun, da der Rest des Programms für die erste Beta-Distribution bereit ist, habe ich den Code in Vorbereitung verschlüsselt, um ihn an die Testgruppenmitglieder zu senden. Nun, da das Programm jedoch verschlüsselt ist, kann es die von mir gespeicherte * -Name.jmp-Datei nicht finden und zeigt daher eine Reihe leerer weißer Diagrammerstellungsfenster sowie die Meldung "Map-Shapes nicht gefunden: "unter jedem. Ich habe überprüft, dass die Datei immer noch genau am richtigen Ort erstellt wird, genau wie zuvor, und dass ich, wenn ich die Datentabelle für eines der leeren Diagramme öffne und die Map-Rolleneigenschaft der Spalte Name sehe, die Liste aufruft korrekter Ort der Datei dort. Aber aus irgendeinem Grund kann ich die Map-Shapes nicht anzeigen, ohne die Skriptdatei zu entschlüsseln.
Wenn jemand Spekulationen darüber hat, warum dies geschieht, wie er behoben werden kann oder wenn es eine andere Möglichkeit gibt, die Datei * -Data.jmp auf die Datei * -Name.jmp ohne einen absoluten Pfad zu verweisen, lassen Sie es mich bitte wissen kennt.
Betreff: Verschlüsselung führt dazu, dass das benutzerdefinierte Map-Erstellen-Skript fehlschlägt?Okay, ich habe einen Schritt in die richtige Richtung gefunden. Es gibt zwei Hauptskripte: Eines ist eine grafische Benutzeroberfläche, und diese Funktion ruft die Hauptfunktion "Sachen machen" auf, mit der die benutzerdefinierten Karten erstellt werden. Ich habe ein Addin erstellt, das die beiden Hauptdateien enthält, und den Code so geändert, dass alle anderen Dateien im Addin-Ordner des Programms erstellt werden. Die GUI-Skriptdatei kann problemlos verschlüsselt werden und normal lesen und schreiben. Der Code im Hauptfunktionsskript kann jedoch nicht verschlüsselt werden, ohne dass das im ursprünglichen Beitrag beschriebene Map-Shapes-Problem auftritt.
Was mir dann aufgefallen ist, war, dass mit dem verschlüsselten Skript der Datei * -Name.jmp der Spalte "Name" die Eigenschaft "Zuordnungsrolle" zugewiesen wurde, aber / nicht angegeben wurde, dass sie als "Shape Name Definition" angegeben wurde es ist leer. Das würde erklären warum Das Ändern des Speicherorts scheint nicht zu helfen, obwohl bei der Kartenrolle "Shape Name Use" der richtige Dateipfad angezeigt wird und die Datei an der richtigen Stelle generiert wird. Das unverschlüsselte Skript gibt die Rolle genau an. Irgendwelche Ideen, wie das funktioniert? Das Programm erstellt eine Reihe von Karten, daher muss dies nacheinander erfolgen, nicht nachträglich. Vielleicht eine benutzerdefinierte Funktion erstellen oder einfach eine Codezeile herausnehmen und in eine separate, unverschlüsselte Datei einfügen und an der richtigen Stelle einfügen? Das ist irgendwie bizarr, wenn durch die Entschlüsselung der Code geändert wird.
Als Randbemerkung gilt das $ ADDIN_HOME Bezeichnung in JMP 9 verfügbar? Ich glaube, dass Addins in JMP 8 eingeführt wurden, aber ich möchte sicher sein, dass JMP 9-JSL-Interpreter dies verstehen können.
Betreff: Verschlüsselung führt dazu, dass das benutzerdefinierte Map-Erstellen-Skript fehlschlägt?Sie sind sich nicht sicher, ob es funktioniert, aber haben Sie versucht, ein Add-In für Ihre Anwendung zu verwenden? Sie können Ihre Datasets in das Add-In-Verzeichnis aufnehmen und mit dem logischen Add-In darauf verweisen. Wenn Ihr Add-In beispielsweise durch (com.abc.def.myapp) definiert ist, können Sie es wie folgt verwenden:
dt = öffnen ( "$ ADDIN_HOME (com.abc.def.myapp) \ AAA-XY.jmp" ) ;