如何在cobol中移动表(数组)的多个元素
我有一个数组,它保存CSV文件中的记录。例如,我可以使用move语句将元素5到10移出到工作存储器中吗?类似于:将ExampleArray(5:10)移动到WS-TEST。我被告知这是可能的,而不必在数组中循环。但我似乎无法以这种方式编译它。您使用的语法称为引用修改。在其他语言中,它相当于substring()。您的示例代码将尝试从ExampleArray+5移动10个字节 支持“所有”下标概念。它有局限性,但它可以做你想做的事。尝试以下方法:如何在cobol中移动表(数组)的多个元素,cobol,Cobol,我有一个数组,它保存CSV文件中的记录。例如,我可以使用move语句将元素5到10移出到工作存储器中吗?类似于:将ExampleArray(5:10)移动到WS-TEST。我被告知这是可能的,而不必在数组中循环。但我似乎无法以这种方式编译它。您使用的语法称为引用修改。在其他语言中,它相当于substring()。您的示例代码将尝试从ExampleArray+5移动10个字节 支持“所有”下标概念。它有局限性,但它可以做你想做的事。尝试以下方法: Move ExampleArray(ALL) to
Move ExampleArray(ALL) to WS-Test
根据编译器的不同,它可能会工作。我认为规范限制了它对整数函数的使用,但并非所有编译器都这样做
不过说真的,执行循环非常简单,只需编写以下代码:
Perform varying II from 1 by 1
until II > (Length of ExampleArray-Area / Length of ExampleArray(1))
Move ExampleArray(II) to WS-Test(II)
End-Perform
你能给我们看看你的密码吗?这将使评论更容易一些。下面是一行不会编译的代码:将WSDCSVI-CHAR(1:160)移动到WS-RecordThank。我非常乐意使用循环,但分析师一直告诉我“一步一个脚印”看起来这不可能做到!有一个动作相当糟糕。此外,如果两个区域的大小完全相同,则可以执行块移动,但如果对其中一个区域进行维护,则会中断。