home *** CD-ROM | disk | FTP | other *** search
/ Sams Cobol 24 Hours / Sams_Cobol_24_Hours.iso / source / ch11 / CHAPT11C.COB < prev    next >
Encoding:
Text File  |  1998-09-15  |  4.4 KB  |  101 lines

  1. 000010 @OPTIONS MAIN,TEST
  2. 000020 Identification Division.
  3. 000030 Program-Id.  Chapt11c.
  4. 000031* Inline Perform With Inline If Example
  5. 000044 Environment Division.
  6. 000050 Configuration Section.
  7. 000051 Special-Names.
  8. 000052       Crt Status Is Keyboard-Status.
  9. 000054 Source-Computer.  IBM-PC.
  10. 000055 Object-Computer.  IBM-PC.
  11. 000056 Data Division.
  12. 000057 Working-Storage Section.
  13. 000067 01  Keyboard-Status.
  14. 000068     03  Accept-Status     Pic 9.
  15. 000069     03  Function-Key      Pic X.
  16. 000070         88 F1-Pressed     Value X"01".
  17. 000071     03  System-Use        Pic X.
  18. 000073 01  Temp-Field            Pic X(20) Value Spaces.
  19. 000074 01  Formatted-Number      Pic X(14) Value "(XXX) XXX-XXXX".
  20. 000075 01  Formatted-Alternate   Pic X(8)  Value "XXX-XXXX".
  21. 000076 01  Name-Length           Pic 99    Value Zeros.
  22. 000077 01  Counter               Pic 99    Value Zeros.
  23. 000079 01  Input-Output-Fields.
  24. 000080     03  Last-Name         Pic X(20) Value Spaces.
  25. 000081     03  First-Name        Pic X(20) Value Spaces.
  26. 000082     03  Phone-Number      Pic 9(10) Value Zeros.
  27. 000083     03  The-Edited-Number Pic X(14) Value Spaces.
  28. 000084     03  Combined-Name     Pic X(40) Value Spaces.
  29. 000085 Screen Section.
  30. 000086 01  Phone-Entry Blank Screen.
  31. 000087     03  Line 01 Column 01 Value " Enter Phone Number: ".
  32. 000088     03  Line 01 Column 22 Pic Z(10) Using Phone-Number.
  33. 000089     03  Line 02 Column 01 Value "    Enter Last Name: ".
  34. 000090     03  Line 02 Column 22 Pic X(20) Using Last-Name.
  35. 000091     03  Line 03 Column 01 Value "   Enter First Name: ".
  36. 000092     03  Line 03 Column 22 Pic X(20) Using First-Name.
  37. 000093     03  Line 05 Column 01 Value "          Full Name: ".
  38. 000094     03  Line 05 Column 22 Pic X(40) From Combined-Name.
  39. 000095     03  Line 07 Column 01 Value "Edited Phone Number: ".
  40. 000096     03  Line 07 Column 22 Pic X(14) From The-Edited-Number.
  41. 000097     03  Line 20 Column 01 Value "Press F1 to Exit".
  42. 000098 Procedure Division.
  43. 000159 Chapt11c-Start.
  44. 000160     Perform Until F1-Pressed
  45. 000161        Display Phone-Entry
  46. 000162        Accept Phone-Entry
  47. 000163* Prepare To Format The Numbers
  48. 000164        Move "(XXX) XXX-XXXX" To Formatted-Number
  49. 000165        Move "XXX-XXXX" To Formatted-Alternate
  50. 000166* Format Based On Size
  51. 000167        If Phone-Number > 9999999
  52. 000168           Inspect Formatted-Number
  53. 000169              Replacing First "XXX"  By Phone-Number (1:3)
  54. 000170                        First "XXX"  By Phone-Number (4:3)
  55. 000171                        First "XXXX" By Phone-Number (7:4)
  56. 000172           Move Formatted-Number To The-Edited-Number
  57. 000173        Else
  58. 000174           Inspect Formatted-Alternate
  59. 000175              Replacing First "XXX"  By Phone-Number (4:3)
  60. 000176                        First "XXXX" By Phone-Number (7:4)
  61. 000177           Move Formatted-Alternate To The-Edited-Number
  62. 000180        End-If
  63. 000181* Left Justify The First Name
  64. 000182* If It's Blank It's A Waste Of Time
  65. 000183        If First-Name > Spaces
  66. 000184           Perform Varying Counter From 1 By 1 Until
  67. 000186                           First-Name (Counter:1) > Space
  68. 000187              Continue
  69. 000188           End-Perform
  70. 000189* Counter Contains The Starting Offset
  71. 000190           Move First-Name (Counter:) To Temp-Field
  72. 000191           Move Temp-Field To First-Name
  73. 000192        End-If
  74. 000193* Left Justify The Last Name
  75. 000194        If Last-Name > Spaces
  76. 000195           Perform Varying Counter From 1 By 1 Until
  77. 000196                           Last-Name (Counter:1) > Space
  78. 000197              Continue
  79. 000198           End-Perform
  80. 000199           Move Last-Name (Counter:) To Temp-Field
  81. 000200           Move Temp-Field To Last-Name
  82. 000201        End-If
  83. 000202* Now Put Them Together
  84. 000203        Perform Varying Name-Length From 20 By -1
  85. 000204           Until First-Name (Name-Length:1) > Space
  86. 000205              Or Name-Length = Zeros
  87. 000206           Continue
  88. 000207        End-Perform
  89. 000208        If Name-Length = Zeros
  90. 000209           Move Last-Name To Combined-Name
  91. 000210        Else
  92. 000211           String First-Name (1:name-Length)
  93. 000212                  Space
  94. 000213                  Last-Name
  95. 000214                  Delimited By Size
  96. 000215                  Into Combined-Name
  97. 000216        End-If
  98. 000217* Now We Repeat
  99. 000218     End-Perform
  100. 000219     Stop Run
  101. 000229     .
  102.