COBOL - Comando MOVE - www.cadcobol.com.br



Desenvolvido por DORNELLES Carlos Alberto - Analista de Sistemas - Brasília DF. - cad_cobol@hotmail.com


MOVE
  • Esta declaração permite a movimentação de campos remetentes (identificador-1) para campos receptores (identificador-2).

  • quem define a forma como será o preenchimento é o campo receptor.

  • se o receptor for um campo numérico, o preenchimento se dará da direita para a esquerda e, se o campo receptor for maior que o emissor, haverá o preenchimento com zeros à esquerda, se o campo receptor for menor que o emissor, haverá a perda (truncamento) dos dígitos excedentes à esquerda.

  • se o receptor for um campo alfabético ou alfanumérico, o preenchimento se dará da esquerda para a direita e, se o campo receptor for maior que o emissor, haverá o preenchimento com brancos à direita, se o campo receptor for menor que o emissor, haverá a perda (truncamento) dos caracteres excedentes à direita.

  • um item de grupo é considerado como alfanumérico pelo compilador.

  • Pode-se mover itens elementares como itens de grupo.

  • Pode-se mover um item de grupo para outro item de grupo, mesmo que ambos (ou apenas um deles) possuam sub-níveis.

Formato 1: (MOVE)

Quando o formato 1 é especificado:

  • Todos os identificadores podem fazer referência a itens de grupos alfanuméricos, itens de grupos nationais ou itens elementares.
  • Quando um dos identifier-1 ou 2 identifica um item de grupo national e o outro operando faz referência a um item de grupo alfanumérico, o grupo national é processado como um item de grupo; em todos os outros casos, o item do grupo national é processado como um item de dados elementar da categoria national.
  • Os dados na área de envio são movidos para o item de dados referenciado por cada identifier-2 na ordem em que os itens de dados do identifier-2 são especificados na instrução MOVE.

Formato 2: (MOVE with CORRESPONDING)

Quando o formato 2 é especificado:

  • Ambos os identificadores devem ser itens de grupo.
  • Um item de grupo national é processado como um item de grupo (e não como um item de dados elementar da categoria national)./li>
  • Os itens selecionados no identifier-1 são movidos para o identifier-2 de acordo com as regras da frase CORRESPONDING.
    Os resultados são os mesmos que se cada par de identificadores CORRESPONDING fosse referenciado em uma instrução MOVE separada.

Constantes:

Constantes (literais) numéricas
  1. 1 a 18 dígitos (se usar o comando CBL ARITH pode chegar a 31 dígitos)
  2. Ponto decimal (opcional, mas não pode ser o último caracter à direita
  3. Sinal (opcional, mas, se incluído, deve ser o primeiro caracter à esquerda)
Constantes (literais) Não-numéricas ou alfanuméricas
  1. 1 a 160 caracteres para o COBOL 85 (120 é o limite máximo para o COBOL 74)
  2. Quaisquer caracteres podem ser usados (exceto aspas ou apóstrofo)
  3. Neste texto, a constante é colocada entre aspas simples ou apóstrofos.

Formato:
 MOVE CORRESPONDIG | CORR item-1 TO item-2.

Observações:
  • item-1 representa o conteúdo a ser transferido. É o emissor.
  • item-2 representa a área receptora.
  • item-1 e item-2 devem itens de grupos.
  • Os itens elementares do item-1 serão movidos para os itens elementares correspondentes do item-2.
  • CORRESPONDING e CORR são sinônimos.

Exemplo:
       WORKING-STORAGE SECTION.           

       01  ITEM-1.
           05  WS-CODIGO           PIC 9(002) VALUE 06.
           05  WS-NOME             PIC X(006) VALUE 'CARLOS'.

       01  ITEM-2.
           05  WS-CODIGO           PIC 9(002).
           05  WS-NOME             PIC X(006).

       PROCEDURE DIVISION.

           MOVE CORR ITEM-1 TO ITEM-2.

       Resultado:

           O ITEM-2 ficará com o mesmo conteúdo do ITEM-1, ou seja, 06CARLOS.
           

MOVE VARIAVEL-A TO VARIAVEL-B