Ich habe herumgesucht und keine einfache Möglichkeit gefunden, Systemeinstellungen in JSL abzurufen. Ich entwickle auf einem Mac (JMP 14 und 15) – möchte aber auch wissen, wie das unter Windows geht. Am nächsten kam mir eine Diskussion darüber, wie man den Sprachcode erhält:
System Service( Get Language Code );
System Service sounds like and interesting function, but I couldn't find any documentation on it. I'm looking for a general solution but am immediately interested in finding the date format, (per setting in System Preferences ➔ Language & Region ➔ Advanced... ➔ Dates ➔ Short), as shown below:

The Kurz date delimiters are normally set to slashes by default, but were modified by me to dashes in the image above. The specific issue I find with changing this setting is that it affects what arguments are valid to the Input Format function. For example, the following statement will generate a runtime error:
col << Input Format( "y/m/d h:m:s" );
Der Code muss also stattdessen wie folgt aussehen:
col << Input Format( "y-m-d h:m:s" );
And the reverse it true if the user has their System Preferences set to slashes. Furthermore, with the Format function, if the wrong date string is given, there won't be a runtime error, but the relevant datetime column will ignore the format setting, and the data will be left in its raw, unintelligible form.
Daher hängt der Satz gültiger Argumente von der Einstellung des Benutzers ab, und der Code muss diese Einstellung zuerst lesen, um zu bestimmen, welches Format verwendet werden soll.
Um dieses Problem zu umgehen, konnte ich die Einstellungsinformationen von einem System-Unix-Befehl sammeln und entsprechend analysieren:
// implement Unix command:
// $ defaults read com.apple.mail DateCellWidthCache | grep M.d.yy
Clear Log();
// read System Preferences from 'defaults' that contains date format string.
sDefaults = Run Program(
Executable( "/usr/bin/defaults" ),
Options( { "read", "com.apple.mail", "DateCellWidthCache" } ),
Read Function( "text" )
);
//Write( sDefaults );
ss1 = Munger( sDefaults, 1, "M/d/yy" ); // check for slash style.
ss2 = Munger( sDefaults, 1, "M-d-yy" ); // check for dash style.
Show( ss1, ss2 ); Write("\!n");
If( ss1 > 0,
Write( "Using slashes.\!n");
,
/* else if */ ss2 > 0,
Write( "Using dashes.\!n");
,
/* else */
Write( "***ERROR: unrecognized date delimiter.\!n");
Write( "defaults read com.apple.mail DateCellWidthCache:\!n");
Write( sDefaults );
);Allerdings erscheint mir das etwas umständlich, und ich kann mir vorstellen, dass es einen einfacheren Weg gibt. Es ist offensichtlich, dass die JMP-Engine diese Einstellung lesen kann, da sie basierend auf dieser Einstellung im Dialogfeld „Spalteneigenschaften“ einen ganz anderen Satz von Zeitformaten anzeigt, wie unten gezeigt (hier werden nur die Strichoptionen dargestellt):

So, my question is: Is there a simple way to get arbitrary System Preferences values (and the date format specifically) by using System Service or some other function?