1

在 DataWindow 控件中使用带有Evaluate 表达式的Describe方法和GetItem... (GetItemString, GetItemDate, GetItemNumber, ...) DataWindow 方法之间是否存在显着的性能差异?

l_s_ret = l_dw.Describe("Evaluate(~"" + a_s_expression + "~", " + String(a_l_rownumber) + ")")

l_s_ret = l_dw.GetItemDecimal(a_l_rownumber, a_s_expression)

我想要一个函数来通过使用 Evaluate 表达式的 Describe 方法从 DataWindow 控件获取一些数据,而不是使用 GetItem... 方法来获取特定数据类型。

提前感谢您的回答。

4

2 回答 2

2

为什么不循环遍历几十万个,捕获前后的 CPU() 并让我们知道呢?(此外,最后,您是“重要”的评判者;对我来说,如果它可以在批处理作业的大循环中使用,那么任何差异都很重要。)

然而,只是盯着它,考虑到两者都必须执行转换数据类型的昂贵操作,加上 Evaluate() 必须解析表达式,如果 Evaluate() 更快,我会感到惊讶。

如果你不想重新发明轮子,PFC 有一个函数可以做这个的一个版本:(pfcdwsrv.pbl)pfc_n_cst_dwsrv.of_getitem()。如果您手边没有它的副本,您可以从其当前站点获取一份副本。

祝你好运,

特里

于 2013-01-31T20:31:29.470 回答
0

您可以使用点表示法从数据窗口行/列中以字符串形式检索数据。这不仅允许您使用一行代码获取单个值,还可以获取行和/或列值。

马特

于 2013-02-21T17:39:45.867 回答