#!/usr/bin/jperl #tcode.st -> st.tcode conv # v1.00 UCT ADy001998m03d31 # v1.01 UCT ADy001998m04d15 #written by Seisei Yamaguchi #http://spock.vector.co.jp/authors/VA010205/ #seisei@usa.net $lr0 = ""; $lr1 = ""; @mbuf = (); $ctr_lx = 0; #large section counter x $ctr_ly = 0; $ctr_sx = 0; $ctr_sy = 0; #small section counter y while( <> ) { if ( /^$/ ) { $ctr_sy = 0; $ctr_ly = $ctr_ly + 1; } else { if ( s/^[ ]*([LR]{2}).*/$1/i ) { $lr0 = substr( $_, 0, 1 ); $lr1 = substr( $_, 1, 1 ); print( STDERR "$lr0$lr1\n" ); do{ $_ = <>; } while( /^$/ ); $ctr_ly = 0; } &analyze_line( $_ ); $ctr_sy = $ctr_sy + 1; #UCT ADy001998m04d15 } } @mbuf = sort @mbuf; print @mbuf; #---------- sub analyze_line { local( $line ) = @_; local( $kanji ); local( $stroke ); chop $line; $line =~ s/^[ ]+//; $ctr_sx = 0; $ctr_lx = 0; while( $line ne '' ) { $kanji = substr( $line, 0, 2 ); $line = substr( $line, 2 ); if ( $kanji ne '' ) { # $stroke = "$lr0$lr1 $ctr_sx,$ctr_sy $ctr_lx,$ctr_ly"; $stroke = "$lr0$ctr_sx$ctr_sy$lr1$ctr_lx$ctr_ly"; push( @mbuf, "$kanji $stroke\n" ); } if ( $line =~ s/^[ ]+// ) { $ctr_sx = 0; $ctr_lx = $ctr_lx + 1; } else { $ctr_sx = $ctr_sx + 1; } } }