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:
- 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
- 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:
PICTURE | Value of data | Edited result |
****.** | 0000.00 | ****.** |
ZZZZ.ZZ | 0000.00 | |
ZZZZ.99 | 0000.00 | .00 |
****.99 | 0000.00 | ****.00 |
ZZ99.99 | 0000.00 | 00.00 |
Z,ZZZ.ZZ+ | +123.456 | 123.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.