String Col Box:如何將字串清單作為 N 個單獨的字串傳遞到 String Col Box。你好,
我遇到了輪廓字串 col 框的問題。請參閱附圖。 
我的問題是,我只能提供一個字串列表作為圖像中的變數“ListOfStrings”,而不是像第一個範例那樣單獨提供每個字串。
我沒有像第一個表中那樣將 xyz 放在三個不同的行中,而是將它們放在同一行中,這對我不起作用。
我會在這件事上得到任何指導。我需要能夠提供字串列表,並且仍然具有與第一個表相同的輸出格式。
自動化和腳本編寫基礎資料分析與建模資料存取回覆:String Col Box:如何將字串清單作為 N 個單獨的字串傳遞到 String Col Box。如果您的x,y,x,w 是數字,則不能在String Col Box 中使用它們,因為它僅適用於字串(如果是這種情況,請先將它們轉換為字元或使用Number Col Box) 。你會收到類似的錯誤訊息
Not a string in access or evaluation of 'String Col Box' , Bad Argument(1), String Col Box/*###*/("names", vals)
使用 Transform Each(如果您有 jmp16+)是轉換這些的簡單方法
Names Default To Here(1);
a = 1;
b = 2;
c = 3;
mylist = {a, b, c};
valsnum = Eval List(mylist);
valstr = Transform Each({curval}, valsnum, Char(curval));
show(valsnum, valstr);
一般來說,如果清單中有變量,這些變數可能不會總是被評估。所以你可以使用 Eval List() 來評估它們
Names Default To Here(1);
a = "X";
b = "Y";
c = "Z";
mylist = {a, b, c};
vals = Eval List(mylist);
show(mylist, vals);回覆:String Col Box:如何將字串清單作為 N 個單獨的字串傳遞到 String Col Box。謝謝@jthi !上面的方法是我的程式碼的簡化。實際的程式碼是我有一個需要像上面的 xyz 一樣列印出來的清單。它與下面的程式碼相同。我嘗試過使用 eval 和 char 函數。 Eval 回傳一個錯誤,但 char 傳回一個像我最初提供的視窗一樣的窗口,其中所有變數( x,y.. )都在一行中。我所做的是將緩衝區列表轉換為字串列表,然後像@txnelson提供的方法一樣使用 (Eval) 對其進行評估。
buffer = {x, y, x, w};
nw = New Window ( "take user input",
<<MODAL></MODAL> nb = Number Col Edit Box(
"",
[0,0,0,0],
targetint = nb << get as matrix;
)
),
bb = Button Box( "OK", targetint = nb << get as matrix ),
Button Box( "Cancel" )
); 不管怎樣,它現在可以工作了,但是有沒有辦法在不使用 eval 的情況下做到這一點?只是好奇。謝謝。
回覆:String Col Box:如何將字串清單作為 N 個單獨的字串傳遞到 String Col Box。謝謝@txnelson 。現在可以了!
僅供參考:
我之前實際上使用過 Eval 但它返回了錯誤訊息。我意識到這是因為我使用了 {} 括號並在其中插入了 eval 函數。我使用了這段程式碼:
String Col Box( "ONLY CHOOSE ONE BLOCK", { Eval (buffer) } );
回覆:String Col Box:如何將字串清單作為 N 個單獨的字串傳遞到 String Col Box。您不必要地將其轉換為字串,這就是您在那裡獲取列表的原因。
Names Default To Here(1);
vals = {"x", "y", "z"};
vals_char = Char(vals);
Show(vals, vals_char, type(vals), type(vals_char));
vals_char 的列印在日誌上看起來有點奇怪,因為 JMP 轉義了引號(如果需要,可以使用 Write() 來避免這種情況)。
您可以使用@txnelson建議的內容,但 Eval 不是必需的(在本例中)
Names Default To Here(1);
vals = {"x", "y", "z"};
nw = New Window("Example",
Outline Box("Table",
Table Box(
scb = String Col Box("names", vals),
Number Col Box("values", {11, 22, 33}),
Plot Col Box("values", {11, 22, 33})
)
)
);回覆:String Col Box:如何將字串清單作為 N 個單獨的字串傳遞到 String Col Box。使用 Eval() 函數讓 JMP 計算變數 listofStrings,它將用變數的值取代該變數。
Names Default To Here( 1 );
listofStrings = {"x", "y", "z"};
New Window( "Example2",
Outline Box( "table2",
Table Box(
String Col Box( "names", Eval( listofStrings ) ),
Number Col Box( "values", {11, 12, 13} ),
Plot Col Box( "values", {11, 12, 13} )
)
)
);
