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} )
)
)
);
