Menu

COBOL - Edição de Supressão Zero e Substituição


Este tipo de edição é válido apenas para itens editados por números.

Na edição de supressão de zero, os símbolos Z e * são usados. Esses símbolos são mutuamente exclusivos em uma cadeia de caracteres PICTURE.

Os seguintes símbolos são mutuamente exclusivos como símbolos de substituição flutuantes em uma cadeia de caracteres PICTURE:
Z * + - cs
Especifique a edição de supressão e substituição de zero com uma sequência de um ou mais dos símbolos permitidos para representar as posições de caractere mais à esquerda nas quais a edição de supressão e substituição de zero pode ser executada.

Quaisquer símbolos de inserção simples (B 0 / ,) dentro ou imediatamente à direita da string de símbolos de edição flutuantes são considerados parte da string.

Se o símbolo de inserção especial de ponto (.) estiver incluído na cadeia de edição flutuante, ele será considerado parte da cadeia de caracteres.


Representando Supressão Zero:

Em uma cadeia de caracteres PICTURE, há duas maneiras de representar a supressão de zero e duas maneiras de realizar a edição:

  1. Qualquer uma ou todas as posições de caracteres numéricos à esquerda do ponto decimal são representadas por símbolos de supressão. Quando a edição é executada, o caractere de substituição substitui qualquer zero à esquerda nos dados que aparecem na mesma posição do caractere como um símbolo de supressão. A supressão pára no caractere mais à esquerda:
    • Isso não corresponde a um símbolo de supressão

    • Que contém dados diferentes de zero

    • Esse é o ponto decimal

  2. Todas as posições de caracteres numéricos na cadeia de caracteres PICTURE são representadas pelos símbolos de supressão. Quando a edição é realizada e o valor dos dados é diferente de zero, o resultado é o mesmo da regra anterior. Se o valor dos dados for zero, então:
    • Se Z tiver sido especificado, todo o item de dados conterá espaços.

    • Se * tiver sido especificado, todo o item de dados, exceto o ponto decimal real, conterá asteriscos.
Por exemplo:

PICTUREValue of dataEdited result
****.**0000.00****.**
ZZZZ.ZZ0000.00
ZZZZ.990000.00.00
****.990000.00****.00
ZZ99.990000.0000.00
Z,ZZZ.ZZ++123.456123.45+
*,***.**+-123.45**123.45-
**,***,***.**++12345678.9 12,345,678.90+
$Z,ZZZ,ZZZ.ZZCR+12345.67$   12,345.67
$B*,***,***.**BBDB-12345.67$ ***12,345.67  DB


Pontas: Não especifique o asterisco (*) como símbolo de supressão e a cláusula BLANK WHEN ZERO para a mesma entrada.