Perl ¤ÎÎãÂê

¡¡£±. ¥×¥í¥°¥é¥à°ìÍ÷

¡¡¡¡¡¡¥Û¥¹¥È¤«¤é¥é¥¤¥Ö¥é¥êº÷°ú¾ðÊó¤ò£Ð£Ã¦¤ËžÁ÷¤·¡¢¥×¥í¥°¥é¥à°ìÍ÷¥Õ¥¡¥¤¥ë(CSV)¤òºîÀ®¤·¤Þ¤¹¡£

¥Û¥¹¥È¤Ï£É£Â£ÍÈÆÍѵ¡¤òÁÛÄꤷ¤Æ¤¤¤Þ¤¹¡£
º÷°ú¾ðÊó¤Ï¡¢£Ô£Ó£Ï¤Î¥é¥¤¥Ö¥é¥êÊݼé¤Îº÷°ú¥³¥Þ¥ó¥É¤Ç¥¢¥¦¥È¥×¥Ã¥È¤µ¤ì¤¿¤â¤Î¤Ç¤¹¡£
žÁ÷¤Ï£Ô£Ó£Ï¤Î¥¨¥ß¥å¥ì¡¼¥¿¤Î recieve ¥³¥Þ¥ó¥É¤« ftp ¤ÇžÁ÷¤·¤Æ¤¯¤À¤µ¤¤¡£
žÁ÷»þ¡¢¥·¥Õ¥È¥¸¥£¥¹¤ËÊÑ´¹¤·¤Æ¤¯¤À¤µ¤¤¡£




¡¡1.»ÅÍÍ

¢£Æ°ºî´Ä¶­ [Windows ÈÇ] -- Windows 95/NT/98/Me/2000 Âбþ Active Perl 5.6.1.630 FreeWare (http://www2j.biglobe.ne.jp/~apollo/server/server.html)
¢£¼Â¹Ô´Ä¶­ ¡¦ºîÀ®¥â¥¸¥å¡¼¥ë: pgmsel.pl ¡¦½èÍý»þ´Ö 8,000 ¹Ô¤ÎÆþÎϤǡ¡Ìó£µÉá¡(800mhz memory=768k) ¡¦ÆþÎÏ¥Õ¥¡¥¤¥ë rcv/rscin.out ¡¦½ÐÎÏ¥Õ¥¡¥¤¥ë1 csv/PGM_INDEX.csv (csv ·Á¼°) ¡¦½ÐÎÏ¥Õ¥¡¥¤¥ë2 bat/pgmsel.bat (batch ·Á¼°)
¢£Æþ½ÐÎÏ¥Õ¥¡¥¤¥ë¤Î»ÅÍÍ ¡¦ÆþÎÏ¥Õ¥¡¥¤¥ë 1 DATASET: AAAA.BATCH.PGMSRC 2001/10/29 DATE: 02/3/1 - MEMBER TTR VERS.MOD CREATION DATE AND TIME CURRENT INITIAL MODIFIED USER NAME (HEX) LEVEL DATE LAST MODIFIED NO. LINES NO. LINES NO. LINES ID 0 PGM0100 040711 01.02 1998/08/06 1999/05/11 15:46 789 790 USER04 PGM0200 017E04 01.15 1999/03/01 2001/04/02 13:40 1025 867 1055 USER01 ¡¦½ÐÎÏ¥Õ¥¡¥¤¥ë1 nnnn ppppppp lib db2 NAME1 NAME2 NAME3 STEP create modify remarks 0001 PGM0100 AAAA.BATCH.PGMSRC D ¢¤ ¢¤ ¢¤ 789 1998/8/6 1999/5/11 ¢¤ ¡¦½ÐÎÏ¥Õ¥¡¥¤¥ë2 recieve PGM0100.cb 1:'AAAA.BATCH.PGMSRC(PGM0100)' [jiscii crlf ¡¡£±£°£°·ïËè¤Ë¥«¥¦¥ó¥Èɽ¼¨¤·¡¢pause ¤ò½ÐÎÏ(³«»ÏÂÔ¤Á¤Ë¤¹¤ë)




¡¡2.¥×¥í¥°¥é¥ß¥ó¥°

»ÅÍͤˤâ¤È¤Å¤­¡¢Perl ¤Ç¥³¡¼¥Ç¥£¥ó¥°¤¹¤ë¤È¡¢¼¡¤Î¤È¤ª¤ê¤Ç¤¹¡£

¥³¡¼¥Ç¥£¥ó¥°¡¡Îã
#!/usr/local/bin/perl ####################################################################### # pgmsel.pl : Active Perl # Copyright(C)2002 Sannomiya , All Rights Reserved. ####################################################################### # # ÍúÎò # 2002.03.01 ¿·µ¬ºîÀ® Ver 1.00 # ####################################################################### # ÀßÄê ####################################################################### $PGMINDEX = "csv/PGM_INDEX.csv"; $rscexp = "cb"; $libid = "BATCH"; ####################################################################### $seq1 = 0; $no1 = 0; ####################################################################### # 1.³«»Ï½èÍý # if (!open(IN1,"< rcv/rscin.out")) { # ÆþÎÏ¥Õ¥¡¥¤¥ë print '(E001):Open Error = rcv/rscin.out'."\n"; # ¥ª¡¼¥×¥ó exit; # ¥ª¡¼¥×¥ó¤Ç¤­¤Ê¤¤ } open(OTA1,"| sort > $PGMINDEX"); # > ½ÐÎÏ SORT # :mbr>libfile print OTA1 ', JCL,LIB,,STEP,NAME,,,CREATE,UPDATE,REMARKS' . "\n"; open(OTB1,"> bat/pgmsel.bat"); # > ½ÐÎÏ¡¡ bat file ####################################################################### # 2.¥á¥¤¥ó¡¡½èÍý # while( <IN1> ) { # IN ¤«¤é¤Î¥Ç¡¼¥¿ $_ ¤¬¤¢¤ë¸Â¤ê¡¢°Ê²¼¤ò¼Â¹Ô¡£ $selsw = 1; # <2.1 Âоݥ饤¥Ö¥é¥ê·èÄê > # #1 DATASET: AAAA.BATCH.PGMSRC .... DATE: 02/01/23 if ($_ =~ /DATASET:/){ s/ / /g; # ¥¹¥Ú¡¼¥¹£²¸Ä¤ò£±¸Ä¤Ë s/ / /g; # £³²ó·«ÊÖ¤·¡¢¥¹¥Ú¡¼¥¹£±¸Ä¤Î¤ß s/ / /g; ($fil1,$fil2,$lib,$fil3) = split(/ /,$_,4); # 4 ¸ÄʬΥ $libfile = $lib; # lib ¼èÆÀ } # <2.2 Âоݥ饤¥ó¤Î·èÄê > # #selsw = 0; # <°Ê²¼¤Îʸ»úÎó¤ò´Þ¤à¹Ô¤Ï½ÐÎÏÂоݳ°¤Ç¤¹¡£> if ($_ =~ /: /){ $selsw = 0; } if ($_ =~ /MEMBER/){ $selsw = 0; } if ($_ =~ /EXTENT/){ $selsw = 0; } if ($_ =~ /TRACKS/){ $selsw = 0; } if ($_ =~ /DIRECTORY/){ $selsw = 0; } if ($_ =~ /MODIFIED/){ $selsw = 0; } # <2.3 PROGRAM MEMBER ¤Î¾ðÊóÈ´¤­½Ð¤· > # if ($selsw == 1){ # Âоݥ饤¥ó¤Î¤È¤­ $line = substr($_,2); # 3¥«¥é¥à¡ÁºÇ¸å¤Þ¤Ç # <Pgm-Index-Output> # $line =~ s/ / /g; # g option is repeat change $line =~ s/ / /g; # 4 ²ó·«¤êÊÖ¤¹¤ÈºÇÂç16¤«¤é $line =~ s/ / /g; # 1¸Ä¤Î¥Ö¥é¥ó¥¯¤Ë¤Ê¤ë $line =~ s/ / /g; ($mbr,$ttr,$ver,$cday,$lday,$ltim,$stp,$ini,$mst,$usr)=split(/ /,$line,10); $rec = ',' . $mbr . ',' . $libfile; $rec = $rec . ',#0' . ',' . $stp . ',#1,#2,#3,'; $rmk = ''; $hip = '-'; if ($stp eq ''){$rmk = 'NO DATA'; $hip = ''; } $rec = $rec . $cday . ',' . $lday . $hip . $ltim; $rec = $rec . ',' . $rmk; print OTA1 $rec . "\n"; # <Pgm-Recieve-BatchFile-Output> # $libnm = ' 1:\'' . $libfile . '(' . $mbr . ')\' '; $dir = 'c:\\usrown/resrc/' . $rscexp . '/'; $batrec = 'receive ' . $dir . $mbr . '.' . $rscexp; $batrec = $batrec . $libnm . ' [jiscii crlf'; print OTB1 $batrec . "\n"; #receive c:\usrown/resrc/cb/PGM0100.cb # 1:'AAAA.BATCH.PGMSRC(PGM0100)' [jiscii crlf # <100·ïËè¤Ë¥·¡¼¥±¥ó¥¹¤òɽ¼¨¤·¡¢¥×¥í¥ó¥×¥ÈÍ׵᤹¤ë> # $seq1 = $seq1 + 1; $no1 = $no1 + 1; if ($no1 == 100){ $no1 = 0; print OTB1 'echo ' . $seq1 . "\n"; print OTB1 'pause ' . "\n"; } } } # while end ####################################################################### # <3.½ªÎ»½èÍý> # print OTB1 'echo COMPLETED CNT=' . $seq1 . "\n"; # bat file ·ï¿ô close(IN1); # while ¤ÎÁàºî¸å ¤Ë OUT ¤òÊĤ¸¤ë¡£ close(OTA1); # close(OTB1); # ####################################################################### ##########End_Of_Script




¡¡3.Ãí°Õ»ö¹à

¥Û¥¹¥È¤Î¥é¥¤¥Ö¥é¥ê¤¬£Ê£Ã£Ì¤Ç¤â£Ã£Ï£Ð£Ù¶ç¤Ç¤â¤«¤Þ¤¤¤Þ¤»¤ó¡£º÷°ú¾ðÊó¤Î¥Õ¥©¡¼¥Þ¥Ã¥È¤¬°Û¤Ê¤ë
¾ì¹ç¤Ï¡¢¤³¤ÎÆþÎÏ»ÅÍͤˤ¢¤ï¤»¤ë¤«¡¢¥«¥¹¥¿¥Þ¥¤¥º¤·¤Þ¤¹¡£

¤³¤Î¤¢¤È¡¢ºîÀ®¤·¤¿¥Ð¥Ã¥Á¥Õ¥¡¥¤¥ë¤ò¼Â¹Ô¤·¤Æ¡¢Âоݥ饤¥Ö¥é¥ê¤Î¥½¡¼¥¹¤òÁ´¤Æ£Ð£Ã¦¤ËžÁ÷¤¹¤ì¤Ð¡¢
¥½¡¼¥¹¤«¤é£Ð£Ç̾¾Î¤â¼è¤ê½Ð¤¹¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£

º¸¥Õ¥ì¡¼¥à¤ËÈÆÍÑŪ¤Ê¥ê¥½¡¼¥¹¤Î°ìÍ÷ºîÀ®¤Î¥Ä¡¼¥ë¤¬¥À¥¦¥ó¥í¡¼¥É¤Ç¤­¤Þ¤¹¡£
°ìÅÙ¡¢¤ª»î¤·¤¯¤À¤µ¤¤¡£