2011-11-24 167 views
0

我有一個數組,其中包含一個CSV文件的記錄。例如,我可以使用移動語句將元素5到10移動到工作存儲中嗎?像這樣:MOVE ExampleArray(5:10)到WS-TEST。我被告知這是可能的,而不必循環遍歷數組。但我似乎無法通過這種方式進行編譯。如何移動cobol中的表(數組)的多個元素

+0

你能告訴我們你的代碼?這會使評論更容易一些。 – NealB

+0

這裏是不會編譯的行:MOVE WSDCSVI-CHAR(1:160)到WS-RECORD – Sutty1000

回答

1

您使用的語法稱爲參考修改。它相當於其他語言中的substring()。您的示例代碼將嘗試從ExampleArray + 5移動10個字節。

有一個支持「ALL」下標的概念。它有侷限性,但它可能會做你想要的。嘗試像這樣:

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 
+0

謝謝。我非常樂意使用循環,但分析師一直告訴我「只是一舉一動」,看起來不可能真的做到! – Sutty1000

+0

有一個相應的移動很糟糕。此外,你可以做一個塊移動IIF兩個區域是完全相同的大小 - 但如果你曾經維護過任何一個區域,那麼這個區域就會崩潰。 –