
Ved Renden 31 2870 Dyssegaard Tel. +45 23 34 54 43
| 
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
|