#! /usr/bin/perl # Mac OS X version by Makoto Hiroshige 2003-01-03 # $data[]: # 0: graduated year or enterd year # 1: part # 2: name # 3: oldname sub show_date { my $tm = shift; my ($day, $month, $year) = (localtime($tm))[3..5]; return ($year+1900, $month+1, $day); } sub output_tab { local($col) = pop(@_); local(@data) = @_; local($ndata) = $#data + 1; # Number of @data local($nlines, $i, $j); if ( $ndata % $col == 0 ) { $nlines = $ndata / $col; } else { $nlines = int( $ndata / $col ) + 1; } $body_string .= "\n"; for( $i=0; $i<$nlines; $i++ ) { $body_string .= " \n"; for( $j=0; $j<$col; $j++ ) { $body_string .= " \n"; } $body_string .= " \n"; } $body_string .= "
$data[$i+$j*$nlines]
\n"; } sub output_tab_years { local($col) = pop(@_); local(@data) = @_; local($ndata) = $#data + 1; # Number of @data local($nlines, $i, $j); if ( $ndata % $col == 0 ) { $nlines = $ndata / $col; } else { $nlines = int( $ndata / $col ) + 1; } print "
\n"; print "\n"; # print " \n"; print " \n"; print "\n\n"; for( $i=0; $i<$nlines; $i++ ) { print " \n"; for( $j=0; $j<$col; $j++ ) { $anchor = get_anchor( $data[$i+$j*$nlines] ); print " \n"; } print " \n"; } print "
年度別 Index (該当者のない年度は表示されません)
年度別 Index (該当者のない年度\は\表\示\されません)
$data[$i+$j*$nlines]
\n
\n"; } sub get_anchor { local($y) = substr( $_[0], 0, 3 ); local($s) = substr( $_[0], 3, 2 ); if( $s eq "卒" ) { $anchor = "look${y}G"; } elsif ( $s eq "入" ) { $anchor = "look${y}E"; } } $body_string = ""; $col = 4; # Number of column ($tdy_year, $tdy_month, $tdy_day) = show_date(time); $tdy_str = sprintf "%d 年 %d 月 %d 日", $tdy_year, $tdy_month, $tdy_day; $last_geyear = ""; @years = (); @names = (); while(<>){ chop; @data = split(/\t/); if ( $data[0] ne $last_geyear ) { push( @years, $data[0] ); &output_tab(@names, $col); @names = (); $anchor = get_anchor( $data[0] ); $out_buff = <<"End of Format";

$data[0] ページトップに戻る 事務局へ
End of Format $body_string .= $out_buff; # print $out_buff; } $last_geyear = $data[0]; if ( $data[3] ne "" ) { $outstr = "$data[1] ($data[3])$data[2]"; } else { $outstr = "$data[1] $data[2]"; } push( @names, $outstr ); # print "$outstr\n"; } # # Output # # # Output OUT file header # print <<"End of Header"; HUSO OB Address Unknown End of Header $out_buff = <<"End of Format";
転居先不明者一覧

$tdy_str 現在で、自宅住所が不明の方を掲載しています。なお自宅住所の名簿掲載を希望なさらない方、退会された方は含まれません。(敬称略)
End of Format print $out_buff; &output_tab(@names, $col); $col = 7; &output_tab_years(@years, $col); print "
OB 会ホームページに戻る
\n"; print $body_string; # # Output OUT file footer # print <<"End of footer"; End of footer