Как переместить несколько элементов таблицы (массива) в cobol - PullRequest
0 голосов
/ 24 ноября 2011

У меня есть массив, который содержит запись из файла CSV.Можно ли, например, использовать оператор перемещения для перемещения элементов с 5 по 10 в рабочее хранилище?Что-то вроде: MOVE ExampleArray (5:10) TO WS-TEST.Мне сказали, что это возможно вместо того, чтобы перебирать массив.Но я не могу заставить его так скомпилировать.

1 Ответ

1 голос
/ 24 ноября 2011

Синтаксис, который вы используете, называется Reference Modification.Это эквивалент подстроки () в других языках.Ваш пример кода будет пытаться переместить 10 байтов из ExampleArray + 5.

Существует концепция нижнего индекса "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
...