Ê¿À®£¹Ç¯ÅÙ ½Õ´ü ÂèÆó¼ï ¸á¸å Ìä8

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Î¹¹¿·Æü¡Ï1997.05.30
Ìä8 ¼¡¤ÎCOBOL¥×¥í¥°¥é¥à¤ÎÀâÌÀµÚ¤Ó¥×¥í¥°¥é¥à¤òÆɤó¤Ç¡¤ÀßÌä¤ËÅú¤¨¤è¡£ ¡Ì¥×¥í¥°¥é¥à¤ÎÀâÌÀ¡Í ¥Ç¡¼¥¿¤ò¡È," ¤Ç¶èÀڤä¿CSV¡ÊComma Separated Value¡Ë·Á¼°¤Î¥Õ¥¡¥¤¥ë¤òÆÉ¤ß ¹þ¤ó¤Ç¡¤»ØÄꤵ¤ì¤¿¥¿¥Ö°ÌÃ֤˹ç¤ï¤»¤Æ°õ»ú¤¹¤ë¥×¥í¥°¥é¥à¤Ç¤¢¤ë¡£ ¡Ê1¡Ë¤³¤ÎCSV·Á¼°¤Î¥Õ¥¡¥¤¥ëCSV-FILE¤Î¥ì¥³¡¼¥ÉŤÏ80¤±¤¿¤Ç¤¢¤ê¡¤³Æ¥ì¥³¡¼¥É ¤Ë¤Ï¡È,¡É¤Ç¶èÀÚ¤é¤ì¤¿Ê¸»úÎó¥Ç¡¼¥¿¤¬³ÊǼ¤µ¤ì¤Æ¤¤¤ë¡£¥ì¥³¡¼¥ÉÆâÍƤÎÎã ¤ò¼¡¤Ë¼¨¤¹¡£ Î㡧CSV-FILE¤Î¥ì¥³¡¼¥ÉÆâÍÆ ¨£¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¤ ¨¢105,¥È¥¦¥­¥ç¥¦¥È¥ß¥Ê¥È¥¯,¥¸¥ç¥¦¥Û¥¦¥·¥ç¥ê¥®¥¸¥å¥Ä¥·¥ã¥·¥±¥ó¥»¥ó¥¿¡¼,001001¨¢ ¨¦¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¥ ©£1. 1¥ì¥³¡¼¥É¤Ë³ÊǼ¤µ¤ì¤Æ¤¤¤ëʸ»úÎó¥Ç¡¼¥¿¤Î¸Ä¿ô¤Ï¡¤1¡Á5¸Ä¤Ç¤¢¤ë¡£ ©¢2. 1¥ì¥³¡¼¥ÉÃæ¤Î¡È,¡É¤ò´Þ¤à¥Ç¡¼¥¿¤ÎŤµ¤¬80¤±¤¿¤ËËþ¤¿¤Ê¤¤¾ì¹ç¡¤Í¾Çò¤Î¤± ¤¿¤Ë¤ÏLOW-VALUE¤¬³ÊǼ¤µ¤ì¤Æ¤¤¤ë¡£ ©£3. ʸ»úÎó¥Ç¡¼¥¿¤Ï¡¤Ä¹¤µ¤¬0¡Á80¤±¤¿¤Ç¤¢¤ê¡¤¡È,¡ÉµÚ¤ÓLOW-VALUE¤ò´Þ¤Þ¤Ê¤¤¡£ ¡Ê2¡Ë¥¿¥Ö°ÌÃ֡ʳÆʸ»úÎó¥Ç¡¼¥¿¤Î°õ»ú³«»Ï¤±¤¿¤Î°ÌÃ֡ˤλØÄê¤Ï¡¤É¸½àÆþÎÏÁõÃÖ¤«¤é ACCEPTʸ¤ÇÆɤ߹þ¤à¡£ÆþÎÏÍͼ°¤Ï¡¤¼¡¤Î¤È¤ª¤ê¤Ç¤¢¤ë¡£
©£1. »ØÄê¤Ç¤­¤ë¥¿¥Ö°ÌÃ֤οô¤Ï¡¤1¡Á5¸Ä¤Ç¤¢¤ë¡£ 2. ¥¿¥Ö°ÌÃÖ¤ÎÃͤϡ¤¡È01¡É¡Á¡È99¡É¤Ç¤¢¤ê¡¤¼¡¤Î¾ò·ï¤òËþ¤¿¤¹¡£ ¥¿¥Ö°ÌÃÖ1¡ã¥¿¥Ö°ÌÃÖ2¡ã¥¿¥Ö°ÌÃÖ3¡ã¥¿¥Ö°ÌÃÖ4¡ã¥¿¥Ö°ÌÃÖ5 ©£3. ¥¿¥Ö°ÌÃ֤λØÄêÎã¤ò¡¤¼¡¤Ë¼¨¤¹¡£ Î㡧¥¿¥Ö°ÌÃ֤λØÄê ¨£¨¡¨¨¨¡¨¨¨¡¨¨¨¡¨¨¨¡¨¨¨¡¨¤ ¨¢ 3¨¢01¨¢08¨¢40¨¢ ¨¢ ¨¢ ¨¦¨¡¨ª¨¡¨ª¨¡¨ª¨¡¨ª¨¡¨ª¨¡¨¥ ¡Ê3¡Ë°õ»ú¤Ï¡¤¼¡¤Î¤è¤¦¤Ë¹Ô¤¦¡£ ©£1. CSV-FILE¤Î³Æʸ»úÎó¥Ç¡¼¥¿¤ò¡¤»ØÄꤵ¤ì¤¿¥¿¥Ö°ÌÃÖ¤«¤é½ç¤Ë°õ»ú¤¹¤ë¡£ ©¢2. ʸ»úÎó¥Ç¡¼¥¿¤Î¸Ä¿ô¤¬¡¤»ØÄꤵ¤ì¤¿¥¿¥Ö°ÌÃ֤θĿô¤è¤ê¤â¿¤¤¾ì¹ç¤Ë¤Ï¡¤»ØÄê ¤µ¤ì¤¿¥¿¥Ö°ÌÃ֤θĿôʬ¤À¤±¤Îʸ»úÎó¥Ç¡¼¥¿¤ò°õ»ú¤¹¤ë¡£Î㤨¤Ð¡¤Ê¸»úÎó¥Ç¡¼¥¿ ¤¬5¸Ä¤¢¤ë¤Ë¤â¤«¤«¤ï¤é¤º¥¿¥Ö°ÌÃÖ¤¬3¸Ä¤·¤«»ØÄꤵ¤ì¤Ê¤«¤Ã¤¿¾ì¹ç¤Ë¤Ï¡¤5¸Ä ¤Îʸ»úÎó¥Ç¡¼¥¿¤Î¤¦¤ÁºÇ½é¤Î3¸Ä¤Î¥Ç¡¼¥¿¤À¤±¤ò°õ»ú¤¹¤ë¡£ ©£3. ʸ»úÎó¥Ç¡¼¥¿¤¬¡¤¼¡¤Î¥¿¥Ö°ÌÃ֤ޤǤËÆþ¤ê¤­¤é¤Ê¤¤¾ì¹ç¤Ë¤Ï¡¤¼¡¤Î¥¿¥Ö°ÌÃ֤Π1¤±¤¿Á°¤Þ¤Ç°õ»ú¤¹¤ë¡£ ©¤4. °õ»ú°ÌÃÖ¤¬120¤±¤¿¤òĶ¤¨¤Æ¤·¤Þ¤¦¾ì¹ç¤Ë¤Ï¡¤120¤±¤¿Ìܤޤǰõ»ú¤¹¤ë¡£ ©¥5. ¡Ê2¡Ë¤Î3.¤Î¤è¤¦¤Ë¥¿¥Ö°ÌÃÖ¤¬»ØÄꤵ¤ì¤¿¤È¤­¤Î°õ»úÎã¤ò¡¤¼¡¤Ë¼¨¤¹¡£
¡Ì¥×¥í¥°¥é¥à¡Í DATA DIVISION. FILE SECTION. FD CSV-FILE. Ol CSV-REC. 03 C-KETA PIC X(1) OCCURS 80. FD PRINT-FILE. O1 PRINT-REC PIC X(120). WORKING-STORAGE SECTION. O1 EOF-FLAG PIC X(1) VALUE SPACE. O1 HENSYU-AREA. 03 H-KETA PIC X(1) OCCURS 120. O1 TAB-SET. 03 TAB-CNT PIC 9(1). 03 TAB PIC 9(2) OCCURS 5. O1 T-POS PIC 9(1). O1 C-POS PIC 9(2). O1 P-POS PIC 9(3). PROCEDURE DIVISION. MAIN-RTN. ACCEPT TAB-SET. OPEN INPUT CSV-FILE OUTPUT PRINT-FILE. READ CSV-FILE AT END MOVE "E" TO EOF-FLAG. PERFORM UNTIL EOF-FLAG = "E" MOVE SPACE TO HENSYU-AREA MOVE 1 TO T-POS MOVE [ a ] TO P-POS PERFORM VARYNG [ b ] FROM 1 BY 1 UNTIL C-POS > 80 OR C-KETA (C-POS) = LOW-VALUE OR P-POS > 120 IF C-KETA (C-POS) = [ c ] THEN COMPUTE T-POS = T-POS + 1 IF T-POS > TAB-CNT THEN MOVE 121 TO P-POS ELSE MOVE TAB (T-POS) TO P-POS END-IF ELSE IF T-POS = TAB-CNT OR P-POS NOT = [ d ] THEN MOVE C-KETA (C-POS) TO H-KETA (P-POS) COMPUTE P-POS = P-POS + 1 END-IF END-IF END-PERFORM WRITE PRINT-REC FROM HENSYU-AREA AFTER 2 READ CSV-FILE AT END MOVE "E" TO EOF-FLAG END-READ END-PERFORM. CLOSE CSV-FILE PRINT-FILE. STOP RUN. ÀßÌä ¥×¥í¥°¥é¥àÃæ¤Î¡Î ¡Ï¤ËÆþ¤ì¤ëÀµ¤·¤¤Åú¤¨¤ò¡¤²òÅú·²¤ÎÃ椫¤éÁª¥Ù¡£ ²òÅú·² ¥¢ 1 ¥¤ 120 ¥¦¡È,¡É ¥¨ C-POS ¥ª P-POS ¥« P-POS + 1 ¥­ TAB¡ÊT-POS¡Ë ¥¯ TAB¡ÊT-POS + 1¡Ë ¥± TAB-CNT ¥³ T-POS + 1

Ìá¤ë ¡¡Á°ÊÇ¡§Ìä7 ¡¡¼¡ÊÇ¡§Ìä9