2011-10-06 4 views
0

Je cours quelques essais sur des images de Cobol et je me demande si --- est une image valide. Ai-je raison de dire que cette image accepte des valeurs comprises entre -99 et +99. Si elle est valide, il est possible que l'image accepte 3 espaces comme valeur?Is --- Cobol photo valide

Par exemple:

12 reviendriez 12
1 retournerait 1

Vive

Répondre

3

Oui --- est une clause PICTURE valide. La variable correspondant à ce PICTURE acceptera les affectations de valeurs numériques comprises entre -99 et +99. Il ne peut pas être affecté de non-numériques (espace par exemple). Cependant, si vous deviez DISPLAY cette variable après lui avoir assigné une valeur numérique, les zéros en tête seront remplacés par des espaces. Par conséquent, si vous MOVE ZERO à cet article il sera DISPLAY seulement des espaces. Tenter de MOVE SPACES à cet élément entraînera une erreur de compilation (types de données incompatibles). Ce dernier bit peut sembler un peu contre-intuitif, mais rappelez-vous que ce type de clause PICTURE implique un USAGE d'affichage - essentiellement les éléments définis de cette manière sont utilisés pour «jolies» numéros d'impression. À propos des seules opérations que vous pouvez préformer avec USAGE DISPLAY articles est MOVE à ou à partir et DISPLAY eux.

EDIT - Réponse au commentaire

Un PICTURE de ---X(2) est invalide. Le tableau ci-dessous illustre les combinaisons et l'ordre dans lequel les symboles peuvent apparaître dans une chaîne PICTURE. Notez que les parenthèses ne sont pas dans le graphique. Logiquement, vous pouvez les remplacer par le nombre correspondant d'occurrences du caractère précédent avant de lire la chaîne. Par exemple X(3) est lu comme XXX. Si vous voulez vraiment analyser une chaîne PICTURE correctement, vous pouvez utiliser ce tableau pour construire une grammaire BNF spécifiquement pour eux.

enter image description here

+0

Merci @NealB. Donc, je suppose que vous ne pouvez pas mélanger un affichage numérique comme --- et X (2) de sorte que vous avez --- X (2)? Cela serait-il valide? Merci :) – Decrypter

+0

@Decrypter Voir la réponse modifiée ... – NealB

0

Si ceci est une image numérique, il ne sera pas accepter les espaces.