
Hier sehen wir, wie man Skripte zum Öffnen von JMP-Datentabellen verwendet. Ich öffne ein neues Skript-Editor-Fenster und verwende die Funktion „Verzeichnis auswählen“, um den Benutzer während der Ausführung des Skripts aufzufordern, zu einem Verzeichnis oder Ordner zu navigieren. Das Ergebnis speichere ich in der Variable „myPath“. Beachten Sie beim Variablennamen: Ich verwende ein Beispiel für sogenannte Camel Case-Schreibweise. Statt Leerzeichen zwischen den beiden Wörtern schreibe ich einfach den ersten Buchstaben des zweiten Wortes groß, um die Lesbarkeit zu verbessern. Ich weise das Ergebnis der Funktion „Verzeichnis auswählen“ also „myPath“ zu. Die Eingabeaufforderung ist optional. Sie erscheint oben links im Dialogfeld „Ordner suchen“. Falls Sie sie verwenden, wird sie als Zeichenfolge angezeigt. Ich gebe also „Wo ist die Cure Time-Datei?“ ein. So weiß der Benutzer, wonach er suchen soll. Und ich führe das Skript aus. Damit bin ich zum letzten Ordner gelangt, den ich interaktiv aufgerufen habe: den Daten für diesen Kurs. Ich könnte hier einfach auf „Ordner auswählen“ klicken, aber stellen Sie sich vor, Sie müssten tatsächlich dorthin navigieren. Sie müssen nicht in den Ordner gehen. Ich könnte ihn einfach auswählen, anstatt ihn zu öffnen, und auf „Ordner auswählen“ klicken. Das Ergebnis ist dasselbe, als hätte ich ihn geöffnet und auf „Ordner auswählen“ geklickt. Sie sehen dann, was im Protokoll zurückgegeben wird und was in meinem Pfad gespeichert ist: die Zeichenfolge mit dem Pfad zu diesem Ordner oder Verzeichnis, ergänzt durch den abschließenden Schrägstrich. Was mache ich also, nachdem ich diesen Pfad abgerufen habe? Ich gehe zu einer neuen Zeile und verwende diese, wenn ich die Open-Funktion verwende, um die Datentabelle „Cure Time“ zu öffnen. Ich speichere die Ergebnisse in der Variable dt. Die Open-Funktion gibt also zusätzlich zum Öffnen dieser Datentabelle eine Objektreferenz zurück. Ich wähle also „öffnen“ und verwende dann die Variable „myPath“ und verbinde sie mit den beiden vertikalen Strichen bzw. Pipes und der Zeichenfolge mit dem Namen der Datentabelle, „Cure Time“, mit einem Leerzeichen zwischen den Wörtern „JMP“. Ich führe nur diese Zeile aus. Zur Erinnerung: Sie können eine einzelne Zeile eines Skripts, auf dem sich der Cursor befindet, mit der Eingabetaste auf dem Ziffernblock rechts auf einer Standard-Desktoptastatur ausführen. Ich führe also nur diese Zeile aus. Die Datentabelle „Cure Time“ wird geöffnet. Im Protokoll sehe ich, dass wir eine Instanz eines Datentabellenobjekts erstellt haben, wenn wir einen Verweis darauf haben, der dann in dt gespeichert wird. Wenn ich zum Skript zurückkehre und den Mauszeiger über dt bewege, sehen Sie, dass dieser Objektverweis für diese Datentabelle gespeichert wird. Wir könnten also Nachrichten an die Datentabelle senden und anderweitig mit ihr interagieren. Für unsere Zwecke konzentrieren wir uns nur auf die Verwendung dieser „Öffnen“-Funktion. Bevor wir uns weitere Beispiele ansehen, denken manche Leute, dass ich die Datentabelle nicht mehr öffnen muss, weil ich die Objektreferenz in dt gespeichert habe. Das stimmt aber nicht. Wenn ich zur Datentabelle „Cure Time“ zurückkehre und sie schließe, gehe ich zu einer neuen Zeile, tippe dort einfach dt ein und führe diese Zeile aus, um den Versuch zu simulieren, die Datentabelle zu verwenden. Wenn ich das ausführe, wird im Protokoll die Datentabelle („UnknownTable“) zurückgegeben. Nur weil ich eine Objektreferenz für eine Datentabelle in einer Variable gespeichert habe, heißt das nicht, dass ich die Datentabelle schließen kann. Sie bleibt während der Arbeit im Speicher. Ich lösche den Inhalt von „Zeilen“ und „Zeilen“ hier. Die erste Zeile lasse ich stehen, werde sie aber nicht erneut ausführen. Ich möchte jetzt die Funktion „Datei auswählen“ verwenden. Die Ergebnisse speichere ich in der Variable „f“. f erhält also das Ergebnis von „Datei auswählen“. In Klammern: Es gibt zwei optionale Argumente für „Datei auswählen“. Es gibt ein Eingabeaufforderungsargument und ein Verzeichnisargument. Wenn ich keine Eingabeaufforderung, sondern ein Verzeichnis angeben möchte, sind dies unbenannte Argumente, daher ist ihre Position wichtig. Ich setze einfach ein Komma in die Klammern und verwende dann die Variable „myPath“. Das Komma teilt JMP mit, dass dies das zweite und nicht das erste Argument ist. Ich gebe also keine Eingabeaufforderung an, sondern teile der Funktion „Datei auswählen“ mit, in welchem Verzeichnis gesucht werden soll. Ich führe dies aus. Es öffnet sich ein Dialogfenster zum Öffnen von Dateien. Die Schaltfläche, die ich nach Auswahl einer Datei anklicke, lautet „Öffnen“. Es öffnet sich jedoch keine Datentabelle, sondern gibt nur einen String zurück, der in f gespeichert wird. Ich klicke also auf „Cure Time.jmp“ und dann auf „Öffnen“. Natürlich gibt es den absoluten Pfad mit Dateinamen und Dateierweiterung. Und jetzt könnte ich in einer neuen Zeile dt eingeben und das Ergebnis der Open-Funktion mit f als Argument zuweisen. Also führe ich diese Zeile aus. dt speichert also wieder die Datentabelle Cure Time und wir können zunächst „Pick Directory“ verwenden, um den Benutzer nach dem Speicherort der Datei zu fragen und ihn dann die Cure Time-Datei auswählen lassen. Auch hier würde eine Eingabeaufforderung sicherlich nicht schaden. In beiden Fällen würden die Eingabeaufforderungen in der oberen linken Ecke der Fenster angezeigt. Sie können die Open-Funktion auch ohne Argumente verwenden. Dies verhält sich dann so, als hätte ich „Datei öffnen“ ausgewählt, gibt aber auch eine Objektreferenz der Datentabelle zurück. Die Pick-Funktionen geben also wieder Zeichenfolgen zurück. Open gibt eine Objektreferenz der Datentabelle zurück.