Formule de colonne pour convertir Unicode en symboleJe veux créer une table JMP qui aura une colonne avec le raccourci unicode pour un symbole, puis que JMP affiche le symbole (avec une formule) dans une autre colonne.Dans la capture d'écran ci-dessous, je voudrais la colonne Affiché avoir une formule qui utilise la colonne Unicode comme entrée et qui affiche le résultat du symbole affiché.
Le tableau ci-dessous a été créé en tapant manuellement Alt+Code.
Je n'arrive pas à comprendre comment faire cela dans une formule de colonne. Toute aide serait appréciée

Tableau de donnéesRe : + Re : Formule de colonne pour convertir Unicode en symboleSalut @Craige_Hales ,
Merci pour l'explication sur la façon de forcer le "\!" échapper. J'avais essayé différentes options, mais je ne les faisais pas fonctionner correctement, mais cette explication a aidé à voir comment les choses devaient être modifiées à la fois avec l'échappement et la concaténation.
Merci!,
DS
Re : + Re : Formule de colonne pour convertir Unicode en symbole@Craige_Hales ,
Un merveilleux exemple et une explication de ce qui se passe au moment de l'analyse par rapport au temps d'exécution.
Stan
+Re : Formule de colonne pour convertir Unicode en symboles'échappe !
hex = "03D0";
uni = "\[\!U]\";
// or
// uni = "\!\!U";
quotationmark = "\!"";
beta = eval(parse( quotationmark || uni || hex || quotationmark ));
La construction de la chaîne \!U nécessite des échappements afin que JMP n'essaie pas de trouver l'hexagone après le U, avant de l'y placer. Cela se produit au moment de l'analyse, pas au moment de l'exécution, donc une fois que la chaîne est construite, dans uni ci-dessus, c'est juste du texte normal. Jusqu'à ce que l'analyse analyse à nouveau la chaîne. Mais pour ce faire, nous avons besoin d'un extrait valide de JSL, qui sera "\!U03d0", y compris les guillemets. Pour obtenir un guillemet, plus d'évasions ! La chaîne est analysée, puis évaluée en un caractère Unicode. Le résultat de l'eval est le caractère Unicode, et il est affecté à beta.
Le premier échappement utilise \[ ... ]\ pour signifier "ne rien interpréter entre les deux". Le second utilise \!\ pour créer un \ littéral, puis le ! Vous êtes juste des personnages normaux.
Re : Formule de colonne pour convertir Unicode en symboleSalut @Craige_Hales ,
Merci pour l'info à ce sujet, je l'ai trouvé très intéressant et utile.
Une chose que je ne comprends pas, c'est comment forcer la commande \!U avec l'hex. Disons que vous avez une colonne comme celle du site Web auquel vous avez fait référence plus tôt, où les entrées sont toutes U+hex, par exemple Beta = U+03D0
Vous pouvez diviser le texte dans la colonne avec quelque chose comme
Word(1,:Character,"+")||Word(2,:Character,"+")
Ce qui vous donnerait la sortie U03D0.
Mais, lorsque j'essaie de mettre cela dans une commande Parse() avec le \!U devant, JMP se plaint de moi. Je comprends que Parse("\!U03D0") donne la version bêta. Ce qui me pose problème, c'est que je ne peux pas concaténer le \!U au code hexadécimal. Par exemple, j'essaierais
Parse("\!U"||Word(1,:Character,"+")||Word(2,:Character,"+"));JMP se plaint. Ce que j'aimerais que les éléments à l'intérieur de la commande Parse soient littéralement "\!U03D0" de sorte que lorsqu'il exécute une analyse dessus, il l'évalue réellement et renvoie la version bêta. J'essaie juste de réfléchir à la manière de procéder en tant que formule de colonne plutôt qu'en tant que script JSL séparé.
Merci!,
DS
Re : Formule de colonne pour convertir Unicode en symboleOu, vous pourriez avoir besoin de quelque chose comme ça
txt = "038F";
code = Hex To Number( txt );
mat = J( 1, 1, code );
blob = Matrix To Blob( mat, "int", 2, "little" );
string = Blob To Char( blob, "utf-16" );
Show( string );
chaîne = "Ώ" ;
qui, si votre navigateur le supporte, ressemble à http://www.fileformat.info/info/unicode/char/038f/index.htm
Le JSL ci-dessus prend la représentation hexadécimale imprimable dans txt, obtient le numéro correspondant, crée une matrice à 1 élément (peut-être plus si vous en avez plus) pour Matrix to Blob, et utilise le blob contenant le numéro du caractère en UTF- 16 pour créer un véritable caractère Unicode.
Ou, vous pouvez mettre l'hexadécimal dans une chaîne JSL avec le \!U et l'analyser.
Re : Formule de colonne pour convertir Unicode en symbolequelque chose comme
beta = "\!U0392";
theta = "\!U0398";
Ou peut-être
Open(
"http://www.fileformat.info/info/unicode/block/greek_and_coptic/list.htm",
HTML Table( 1, Column Names( 1 ), Data Starts( 2 ) )
);
ce qui rend
Table loaded from URLTableau chargé à partir de l'URL
J'aime ce site pour trouver des personnages; créer la version \!U de JMP à partir de la leur
http://www.fileformat.info/info/unicode/char/3b2/index.htm

Ils affichent U+0392, JMP utilise \!U0392