MainframeSupports
tip uge 45/2005:

En af de ting, der har irriteret mig mest i COBOL er COBOL's manglende evne til at kunne formatere numeriske værdier, så de kan indgå i en tekst, f.eks en fejltekst. For at kunne benytte en numeriske værdi i en tekst kræver det, at den kan behandles venstrestillet og uden efterfølgende blanke. Jeg har kæmpet længe med denne problemstilling indtil en dag jeg kom på den løsning, som jeg nu vil præsentere:

* Somewhere in working storage section
01 d2cWS.
02 d2cI pic -(19)9.
02 d2cC redefines d2cI pic x(20).
02 d2cD pic x.
02 d2cO pic x(20).
02 d2cL pic s9(4) binary.

* Somewhere in procedure division
move something-numeric to d2cI
unstring d2cC delimited by all spaces
into d2cD d2cO count d2cL
display 'Something numeric left justified ' d2cO(1:d2cL) ' with no trailing blanks'

Jeg håber, at du kan tilgive mig de manglende indrykninger til de korrekte kolonner i COBOL. Jeg har med vilje ikke lavet en erklæring af variablen something-numeric, da den netop bare skal være en slags numerisk variabel i COBOL. Jeg kan desværre kun klare heltal med den viste kode.

Som jeg før har bemærket, så er COBOL ikke lige det mest elegante programmeringssprog og man kan desværre ikke engang lave ovenstående som en funktion i COBOL. I forhold til mange andre operationer i COBOL, så er det egentlig imponerende, at det kan lade sig gøre med kun to statements. Til gengæld skal der hele 5 variabel-erklæringer til.

Forrige danske tip        Last tip in english        Tip oversigten