# h2zkana1.pl
# 内容 : 半角カナを全角カナに変更する
# 前提 : 入力ファイルはshift-jis、スクリプトはshift-jisとすること
#        「jperl」でのみ動作可能(通常のperlでは動作不可)
# Copyright (c) 2011 Mitsuo Minagawa, All rights reserved.
# (minagawa@fb3.so-net.ne.jp)
# 使用方法 : c:\>jperl h2zkana1.pl
#

open(IN1,"input_sjis.txt");
open(OUT1,">output_sjis.txt");

$dakuten	=	1;
$handaku	=	2;

while	($line1	=	<IN1>)	{
		chomp($line1);
		$line1	=~	s/(?:\x0D\x0A|[\x0D\x0A])?$/,/;
		@in1	=	map {/^"(.*)"$/ ? scalar($_ = $1, s/""/"/g, $_) : $_}
					($line1 =~ /("[^"]*(?:""[^"]*)*"|[^,]*),/g);
		$temp	=	$in1[2];

#
# 半角スペースは全角スペースにする。
#
	$temp	=~	s/ /　/g;
#
# 半角を全角にする。
#
	$temp	=~	tr/\xA1-\xDF/。「」、・ヲァィゥェォャュョッーアイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワン゛゜/;
#
# 濁音の処理
#
	$temp	=~	s/([カキクケコサシスセソタチツテトハヒフヘホ])゛/pack("n",unpack("n",$1)+$dakuten)/ge;
#
# 半濁音の処理
#
	$temp	=~	s/([ハヒフヘホ])゜/pack("n",unpack("n",$1)+$handaku)/ge;
#
# ヴ の処理
#
	$temp	=~	s/ウ゛/ヴ/g;
#
# 出力
#
	$in1[2]	=	$temp;
	$out1	=	join("\t",@in1);
	print	OUT1	"$out1\n";
}
close(IN1);
close(OUT1);

