gnucobol-users
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[open-cobol-list] Cobol toy.


From: John Culleton
Subject: [open-cobol-list] Cobol toy.
Date: Sat, 6 Sep 2008 11:08:19 -0400
User-agent: KMail/1.9.9

I wanted to fill my sig block with an edited version of my current 
Linux uptime.  So for my sig block I referred to a little 
script "sigout" which called uptime. Unfortunately automatically 
editing uptime seemed a bit of a chore in sed, awk or whatever.  So I 
turned to a more familiar tool and and some less familiar verbs such 
as string and unstring. 
Here is the script:
------------------------------------
uptime >sigfirst
echo John Culleton
echo Able Indexers and Typesetters
stripit
echo -n "Slackware Linux "
cat sigsecond
--------------------------------
and here is the COBOL program stripit:
--------------------------------------------------------
000010 IDENTIFICATION DIVISION.
000020 PROGRAM-ID. STRIPIT.
000030 AUTHOR. JOHN CULLETON.
000040 INSTALLATION. WEXFORDPRESS
000045            Eldersburg MD.
000047*SECURITY. Copyright 2008 John R. Culleton, Jr. 
000050*REMARKS.
000060*    Strips down output of uptime.  
000070 ENVIRONMENT DIVISION.
000080 
000090 CONFIGURATION SECTION.
000100 SOURCE-COMPUTER.  
000110      Linux.
000120 OBJECT-COMPUTER. 
000230      Linux.
000140 
000150 INPUT-OUTPUT SECTION.
000160 FILE-CONTROL.
000170     SELECT INFILE ASSIGN TO "sigfirst"
              ORGANIZATION IS LINE SEQUENTIAL.
000170     SELECT OUTFILE ASSIGN TO "sigsecond"
                ORGANIZATION IS LINE SEQUENTIAL.
000180 DATA DIVISION.
000190
000200 FILE SECTION.
       FD  INFILE.
       01  SIGIN PICTURE X(80).    
       FD  OUTFILE.
       01  SIGOUT PICTURE X(80).    
000210
000220 WORKING-STORAGE SECTION.
000230 01  WORK-FIELDS.
               05 FIELDZ PICTURE X.
               05 FIELDA PICTURE X(25).
               05 FIELDB PICTURE X(25).
               05 FIELDC PICTURE X(25).
               05 FIELDD PICTURE X(25).
               05 FIELDE PICTURE X(25).
               05 FIELDF PICTURE X(25).
               05 FIELDG PICTURE X(25).
               05 FIELDH PICTURE X(25).
               05 FIELDI PICTURE X(80).
       01   FIELDX PIC X(7) VALUE "hrs:min". 
       01   COUNTA PICTURE 99 COMPUTATIONAL.

000240 PROCEDURE DIVISION.
000250 001-MAIN-PROCEDURE.
           OPEN INPUT INFILE OUTPUT OUTFILE.
           MOVE SPACES TO SIGIN.
           READ INFILE AT END STOP RUN.
           MOVE SPACES TO WORK-FIELDS.
           UNSTRING SIGIN 
           DELIMITED BY ALL SPACES
           INTO  
           FIELDA
           FIELDB 
           FIELDC 
           FIELDD 
           FIELDE
           FIELDF
           FIELDG
           FIELDH
           FIELDI.
           MOVE SPACES TO SIGOUT.
           INSPECT FIELDF TALLYING COUNTA FOR ALL
           ":".
           IF COUNTA LESS THAN 1 MOVE "min    " 
                   TO FIELDX.  
           INSPECT WORK-FIELDS REPLACING ALL
           SPACES BY "-". 
           STRING
           FIELDC
           DELIMITED BY "-"  
           " "
           FIELDD
           DELIMITED BY "-"  
           " "
           FIELDE
           DELIMITED BY "-"  
           " "
           FIELDF
           DELIMITED BY "-"  
           " "
           FIELDX 
           INTO SIGOUT.
           INSPECT SIGOUT REPLACING ALL
           "-" BY " ".
           WRITE SIGOUT.
           CLOSE INFILE OUTFILE.
           STOP RUN. 

-------------------------------------------
And here is the result: 

-- 
John Culleton
Able Indexers and Typesetters
Slackware Linux up 2 days, 19:27, hrs:min


reply via email to

[Prev in Thread] Current Thread [Next in Thread]