A instrução INITIALIZE
no COBOL é usada para atribuir valores padrão a campos de dados, substituindo a necessidade de múltiplos comandos MOVE
. Ela permite inicializar registros inteiros de maneira padronizada e eficiente.
📌 Para que serve
-
Limpar ou zerar campos de memória.
-
Inicializar grupos ou itens individuais com espaços ou zeros.
-
Evitar resíduos de memória em variáveis.
-
Substituir várias instruções
MOVE
por uma única instrução mais legível.
🧾 Sintaxe básica
INITIALIZE identificador-1
[REPLACING categoria-1 BY identificador-2 | literal-1]
🧠 Categorias de dados aceitas
Categoria | Valor padrão sem REPLACING | Com REPLACING (valor fornecido) |
---|---|---|
ALPHABETIC | SPACE | Valor definido |
ALPHANUMERIC | SPACE | Valor definido |
ALPHANUMERIC-EDITED | SPACE | Valor definido |
NATIONAL | SPACE (Unicode) | Valor definido |
NATIONAL-EDITED | SPACE (Unicode) | Valor definido |
NUMERIC | ZERO | Valor definido |
NUMERIC-EDITED | ZERO | Valor definido |
DBCS / EGCS | SPACE | Valor definido |
✅ Exemplos
Exemplo 1: Inicializando um grupo
INITIALIZE DADOS-CLIENTE.
Todos os campos numéricos recebem ZERO e os alfanuméricos recebem SPACE.
Exemplo 2: Inicializando com REPLACING
INITIALIZE DADOS-VENDA
REPLACING NUMERIC BY 9
ALPHANUMERIC BY "*".
Os campos numéricos recebem 9 e os alfanuméricos recebem asteriscos.
🚫 Itens que NÃO são inicializados
-
Campos com
REDEFINES
ou subordinados a eles. -
Campos
FILLER
. -
Ponteiros (
USAGE IS POINTER
,FUNCTION-POINTER
,PROCEDURE-POINTER
). -
Índices (
USAGE IS INDEX
). -
Referências de objeto (
USAGE IS OBJECT REFERENCE
).
📍 Regras importantes
-
O
INITIALIZE
simula diversosMOVE
para cada item elementar. -
A ordem de inicialização segue a ordem de definição dos campos.
-
Se
identifier-1
eidentifier-2
compartilharem a mesma área de memória, o comportamento será indefinido.
✅ Conclusão
A instrução INITIALIZE
é uma forma prática e legível de limpar áreas de dados no COBOL. Além de substituir múltiplos comandos MOVE
, ela promove organização e reduz a chance de erros. O uso da cláusula REPLACING
ainda permite personalizar a inicialização conforme a categoria dos dados, tornando o código mais flexível e expressivo.