[ABUS] Par: SteveTerry / Conseil: discussions (54365)Je soupçonne que j'ai par inadvertance signalé mon propre message comme inapproprié. Veuillez inverser cela.
Lien vers l'article: (Comment accéder aux Préférences Système dans JSL, en particulier le paramètre de format de date)
par SteveTerry
https://community.jmp.com/t5/Discussions/How-to-access-System-Preferences-in-JSL-specifically-the-date/mp/280619#M54365
J'ai cherché et je n'ai trouvé aucun moyen simple d'obtenir les paramètres des préférences système à partir de JSL. & nbsp; Je développe sur un Mac - (JMP 14 & amp; 15) - mais j'aimerais aussi savoir comment faire cela sous Windows. & nbsp; Le plus proche que j'ai obtenu était un https://community.jmp.com/t5/Discussions/Manage-the-display-language-with-JSL-or-freezing-english/td-p/236566 "target =" _ self "> discussion sur la façon d'obtenir le code de langue:
& nbsp;
Service système (Get Code de langue);
System Service ressemble à une fonction intéressante, mais je n'ai trouvé aucune documentation à ce sujet. & nbsp; Je recherche une solution générale mais je suis immédiatement intéressé par la recherche du format de date, (par paramètre dans Préférences Système ➔ Langue & amp; Région ➔ Avancé ... ➔ Dates ➔ Court), comme indiqué ci-dessous:
& nbsp;
Le > Les délimiteurs de date courts sont normalement réglés sur des barres obliques par défaut, mais ont été modifiés par moi en tirets dans l'image ci-dessus. & nbsp; Le problème spécifique que je trouve avec la modification de ce paramètre est que cela affecte les arguments valides pour la fonction Input & nbsp; Format & nbsp ;. & nbsp; Par exemple, l'instruction suivante générera une erreur d'exécution:
& nbsp;
col & lt; & lt; Format d'entrée ("y / m / dh: m: s");
Le code doit donc ressembler à:
col & lt; & lt; Format d'entrée ("ymd h: m: s");
Et l'inverse est vrai si l'utilisateur a ses préférences système définies sur des barres obliques. & nbsp; De plus, avec la fonction Format & nbsp;, si la mauvaise chaîne de date est donnée, il n'y aura pas d'erreur d'exécution, mais la colonne datetime correspondante ignorera le le paramètre de format, et les données seront laissées dans leur forme brute et inintelligible.
& nbsp;
Ainsi, l'ensemble d'arguments valides dépend du paramètre de l'utilisateur, et le code doit Lisez d'abord ce paramètre pour déterminer le format à utiliser.
& nbsp;
Pour contourner ce problème, j'ai pu collecter les informations de paramètres à partir d'une commande système Unix et les analyser en conséquence: < / p>
& nbsp;
// implémente la commande Unix: // $ defaults read com.apple.mail DateCellWidthCache | grep Mdyy Effacer le journal (); // lit les Préférences Système à partir de 'defaults' qui contient la chaîne de format de date. sDefaults = Exécuter le programme (Exécutable ("/ usr / bin / defaults"), Options ({"read", "com.apple.mail", "DateCellWidthCache"}), Fonction de lecture ("text")); // Écriture (sDefaults); ss1 = Munger (sDéfaut, 1, "M / j / aa"); // vérifie le style de barre oblique. ss2 = Munger (sDéfaut, 1, "Md-yy"); // vérifier le style de tiret. Afficher (ss1, ss2); Ecrire ("\! N"); If (ss1 & gt; 0, Write ("Utilisation de barres obliques. \! N");, / * else if * / ss2 & gt; 0, Write ("Utilisation de tirets. \! N");, / * else * / Write ("*** ERREUR: délimiteur de date non reconnu. \! N"); Write ("default read com.apple.mail DateCellWidthCache: \! N"); Write (sDefaults););
Cependant, cela semble un peu maladroit, et j'imagine qu'il existe un moyen plus simple. & nbsp; Il est évident que le moteur JMP peut lire ce paramètre car il présente un ensemble très différent de formats d'heure dans la boîte de dialogue Propriétés de la colonne en fonction de ce paramètre, comme indiqué ci-dessous (présentant uniquement les options de tiret ici):
& nbsp;
Ma question est donc la suivante: & nbsp; Existe-t-il un moyen simple d'obtenir des valeurs arbitraires dans les préférences système (et le format de la date en particulier) en utilisant & nbsp; Service système & nbsp; ou une autre fonction?
& nbsp;
Ce message a 0 réponses