2016-03-02 96 views
2

首先:我使用UC4 - 对话框版本9.00A Build 234-162。Automic UC4脚本:将用户输入存储到数组中

我试图读取可变数量输入字段(通过:READ),并希望它们的值存储到一个数组:

:DEFINE &FILE#, string, 10 
:PUBLISH &FILE#[], , "WORKFLOW" 

:BEGINREAD "Files" 
: READ &CNT#, , "Number of files", "3" 
:ENDREAD 

:SET &IDX# = 1 
:BEGINREAD "Files" 
: WHILE &IDX# LE &CNT# 
: SET &IDX# = ADD(&IDX#, 1) 
: READ &FILE#[&IDX#], ,"???" 
: ENDWHILE 
:ENDREAD 

问题是:现在,我发现了错误消息U0020310告诉我第一个参数:READ必须是一个变量。

问题:我错过了什么?是否不可能使用:用数组读取?如果是这样的话:我该如何解决这个问题?

回答

0

& CNT#必须是一个Variable对象(一个VARA对象)。所以你会把所有东西都读入静态的VARA对象中。

这可能比通过PREP_PROCESS命令循环。

+0

我不知道这个VARA对象如何帮助我创建一个具有动态数量输入行的公式。这就是BEGINREAD块中的WHILE循环所要做的。 所以......你愿意给我一个例子吗? 正如我所看到的,UC4不喜欢它不知道BEGINREAD块开始处的每个READ命令的EXACT存储位置的事实吗? ,因为:READ&FILE#[1],,“???” 工程就像一个魅力 - 但它不是我想要的... –

+0

请准确描述你想达到什么,可能有一个更简单的方法来做到这一点。 – Gambrinus

+0

是的,你说得对,以任何方式“动态” - 如动态文件处理和动态迭代次数在运行时不起作用。 – Gambrinus

相关问题