在路径名中使用变量你好,
如果这是一个微不足道的问题,请原谅我,我没有太多使用 JSL 的经验。
我正在尝试使用 JSL 代码将图片添加到悬停标签,并希望使用变量定义图片路径。 我有一个图片文件夹,并希望使用表中的变量来调用它们。
例如,我的图片被标记为 1 到 100,并且我的表格中有一个名为“图片编号”的列。 我希望能够这样称呼他们:
PictureBox(Open("c:/iris/"picture number" .jpg", jpg));
这可能吗?
非常感谢!
大规模定制回复:在路径名中使用变量哇,很好的例子, @jthi ! 感谢您的分享!
这里的技巧是,当您从表列构建图像精细名称时,必须指示列名称和行。 在由 graphlet 执行上下文填充的本地命名空间内,当前行在变量 local:_firstRow 中可用。 因此构造:
Picture Box(Open(Column("PicAdress")[local:_firstRow],jpg))
有关此变量和其他变量的更多信息,请参阅悬停标签执行上下文。
回复:在路径名中使用变量非常感谢,这很好用。
回复:在路径名中使用变量尝试检查日志以查看您遇到的错误。 最有可能是这样的:“名称空间“local_”未在“local_:PicAdress”的访问或评估中定义”。
尝试这样的事情:
Picture Box(Open(Column("PicAdress")[local:_firstRow],jpg))
更多信息可能来自:如何使用底层数据点的数据在鼠标悬停时运行查询?
编辑:
我添加了示例脚本。 它将创建几个文件(默认为 10 个)到 $TEMP(并尝试在窗口关闭时删除它们)并使用两个图形生成器创建窗口:
- 首先将使用以下想法从图形生成器中的数据构建路径:
PictureBox(打开("c:/iris/" || 本地:_PicAdress || ".jpg", jpg))
- 其次是仅使用图形生成器中的行信息并根据数据表中的行获取数据
图片框(打开(Column("PicAdress")[本地:_firstRow],jpg))
回复:在路径名中使用变量感谢您的回复。
我有一个后续问题。 我希望悬停标签从列中获取文件地址。 我的专栏本身有地址,例如,我的专栏中的文本(名为 PicAdress)是 "c:/iris/picNumber.jpg" 。
但是,我无法让小屋标签接受这个变量。我尝试过使用:
PictureBox(Open(local:_PicAdress, jpg))
没有成功。
当我简单地在栏中输入地址时,没有问题。
PictureBox(Open("c:/iris/" || local:_PicAdress || ".jpg", jpg))
有什么建议吗?
回复:在路径名中使用变量您可能想检查此线程。 他们有相同的用例。 该线程包含许多您应该会觉得有用的脚本示例。
悬停标签
回复:在路径名中使用变量检查日志中的消息。 以下一项或多项可能会有所帮助。
在变量中构建路径名并将其打印到日志中,然后传递变量以打开。
在要打开的第二个参数两边添加引号。
在列名前添加数据表范围。
在列名后面添加行号下标。
编辑:使用 char() 函数将数字转换为字符!
filename = "c:/iris/" || char(dt:picture number[1]) || ".jpg";
show(filename);
PictureBox(Open( filename, "jpg"));
回复:在路径名中使用变量如果您查看悬停标签编辑器为图片图形提供的示例
// Example:
// Graph Builder(Variables(Y(local:_measurements[1])), Elements(Histogram(Y)))
// Example:
// PictureBox(Open("c:/iris/" || local:_Species || ".jpg", jpg));语法似乎有点特殊。 也许它可以与这样的东西一起工作:
PictureBox(Open("c:/iris/" || char(local:_picture number)|| ".jpg", jpg));回复:在路径名中使用变量使用特定的图片编号可以正常工作,但是我无法将变量名称(变量列是“图片编号”)插入到该路径中,例如,以下内容不起作用。 知道如何解决这个问题吗?
PictureBox(Open("c:/iris/" || :picture number|| ".jpg", jpg));
回复:在路径名中使用变量谢谢!我会尝试一下。
回复:在路径名中使用变量是的,有一些变化:
img << saveimage( "f:/path/x" || Char( imagenumber ) || ".png", "png" );
x 是数字之前的前缀,操作系统不需要。