Spaltenformel zum Konvertieren von Unicode in ein SymbolIch möchte eine JMP-Tabelle erstellen, die eine Spalte mit der Unicode-Verknüpfung für ein Symbol enthält, und dann JMP das Symbol (mit einer Formel) in einer anderen Spalte anzeigen lassen.Im Screenshot unten möchte ich die Spalte Angezeigt um eine Formel zu haben, die die Spalte verwendet Unicode als Eingabe und zeigt das angezeigte Symbolergebnis.
Die folgende Tabelle wurde durch manuelle Eingabe von Alt+Code erstellt.
Ich kann nicht herausfinden, wie man das in einer Spaltenformel macht. Jede Hilfe wäre willkommen

DatentabelleRe: +Re: Spaltenformel zum Konvertieren von Unicode in ein SymbolHi @Craige_Hales ,
Danke für die Erklärung, wie man das "\!" Flucht. Ich hatte verschiedene Optionen ausprobiert, aber ich brachte sie nicht richtig zum Laufen, aber diese Erklärung half mir zu sehen, wie die Dinge sowohl mit der Escape- als auch mit der Verkettungsfunktion geändert werden mussten.
Vielen Dank!,
DS
Re: +Re: Spaltenformel zum Konvertieren von Unicode in ein Symbol@Craige_Hales ,
Ein wunderbares Beispiel und eine Erklärung dafür, was zur Analysezeit im Vergleich zur Laufzeit passiert.
Stan
+Re: Spaltenformel zum Konvertieren von Unicode in ein Symbolentkommt!
hex = "03D0";
uni = "\[\!U]\";
// or
// uni = "\!\!U";
quotationmark = "\!"";
beta = eval(parse( quotationmark || uni || hex || quotationmark ));
Zum Erstellen der Zeichenfolge \!U sind Escapezeichen erforderlich, damit JMP nicht versucht, Hex nach dem U zu finden, bevor Sie es dort einfügen. Das geschieht zur Analysezeit, nicht zur Laufzeit. Sobald die Zeichenfolge erstellt ist, ist sie in uni oben nur normaler Text. Bis parse den String erneut durchsucht. Aber dazu brauchen wir ein gültiges JSL-Snippet, das "\!U03d0" sein wird, einschließlich der Anführungszeichen. Um ein Anführungszeichen zu erhalten, mehr Fluchten! Die Zeichenfolge wird analysiert und dann zu einem Unicode-Zeichen ausgewertet. Das Ergebnis der Auswertung ist das Unicode-Zeichen und wird Beta zugewiesen.
Das erste Escape verwendet \[ ... ]\ in der Bedeutung "nichts dazwischen interpretieren". Der zweite verwendet \!\, um ein wörtliches \ zu erstellen, dann das ! U sind nur normale Zeichen.
Betreff: Spaltenformel zum Konvertieren von Unicode in ein SymbolHi @Craige_Hales ,
Danke für die Info dazu, fand ich sehr interessant und hilfreich.
Eine Sache, die ich jedoch nicht verstehe, ist, wie man den \!U-Befehl mit dem Hex erzwingt. Nehmen wir an, Sie haben eine Spalte wie von der Website, auf die Sie zuvor verwiesen haben, in der die Einträge alle U+hex sind, z. B. Beta = U+03D0
Sie können den Text in der Spalte mit etwas wie aufteilen
Word(1,:Character,"+")||Word(2,:Character,"+")
Was Ihnen die Ausgabe U03D0 geben würde.
Aber wenn ich versuche, das in einen Parse()-Befehl mit dem \!U voranzustellen, beschwert sich JMP bei mir. Ich verstehe, dass Parse("\!U03D0") Beta gibt. Was mich herausfordert, ist, dass ich das \!U nicht mit dem Hex-Code verketten kann. Ich würde es zum Beispiel versuchen
Parse("\!U"||Word(1,:Character,"+")||Word(2,:Character,"+"));JMP klagt. Was ich möchte, dass das Zeug innerhalb des Parse-Befehls buchstäblich "\!U03D0" ist, damit es beim Ausführen von Parse tatsächlich ausgewertet und Beta zurückgegeben wird. Ich versuche nur darüber nachzudenken, wie dies als Spaltenformel und nicht als separates JSL-Skript zu tun ist.
Vielen Dank!,
DS
Betreff: Spaltenformel zum Konvertieren von Unicode in ein SymbolOder Sie brauchen so etwas
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 );
Zeichenfolge = "Ώ";
was, wenn Ihr Browser es unterstützt, aussieht http://www.fileformat.info/info/unicode/char/038f/index.htm
Die obige JSL nimmt die druckbare Hex-Darstellung in txt, ruft die Zahl dafür ab, erstellt eine 1-Element-Matrix (könnte mehr sein, wenn Sie mehr haben) für Matrix to Blob und verwendet den Blob, der die Nummer des Zeichens in UTF- enthält. 16-Formular, um ein tatsächliches Unicode-Zeichen zu erstellen.
Oder Sie könnten das Hex mit dem \!U in eine JSL-Zeichenfolge einfügen und es analysieren.
Betreff: Spaltenformel zum Konvertieren von Unicode in ein Symboletwas wie
beta = "\!U0392";
theta = "\!U0398";
Oder vielleicht
Open(
"http://www.fileformat.info/info/unicode/block/greek_and_coptic/list.htm",
HTML Table( 1, Column Names( 1 ), Data Starts( 2 ) )
);
was macht
Table loaded from URLTabelle aus URL geladen
Ich mag diese Seite, um Charaktere zu finden; die \!U-Version von JMP aus ihrer machen
http://www.fileformat.info/info/unicode/char/3b2/index.htm

Sie zeigen U+0392, JMP verwendet \!U0392