# csv2fix_2.pl
# 内容 :　CSVファイルを固定長ファイルに変換する
# 前提 :入力ファイルとスクリプトはshift_jisとする。
#      :(入力ファイルに漢字などの全角文字を含まない場合)
# Copyright (c) 2002-2011 Mitsuo Minagawa, All rights reserved.
# (minagawa@fb3.so-net.ne.jp)  
# 使用方法 : c:\>perl csv2fix_2.pl
#
open(IN1,"csv.txt");	
open(OUT1,">output.txt");	

@fields	=	(10,10,7,1,1,1,8,8,8,2,2,4);	
for	($i	=	0;	$i	<=	$#fields;	$i++)	{	
	$fields[$i]	=	"A".$fields[$i];	
}	
while	($line1	=	<IN1>)	{	
	chomp($line1);	
# CSV形式の $line1 から値を取り出して @in1 に入れる 
	my $tmp	=	$line1;
	$tmp	=~	s/(?:\x0D\x0A|[\x0D\x0A])?$/,/;
	@in1	=	map {/^"(.*)"$/ ? scalar($_ = $1, s/""/"/g, $_) : $_}
				($tmp =~ /("[^"]*(?:""[^"]*)*"|[^,]*),/g);
	for	($i	=	0;	$i	<=	$#in1;		$i++)	{	
		if		($in1[$i]	eq	"")				{	
				$in1[$i]	=	" ";	
		}	
		$out1	=	$out1.pack($fields[$i],$in1[$i]);	
	}	
		
	print	OUT1	"$out1\n";	
	$out1	=	undef;	
	@in1	=	undef;	
}	
close(IN1);	
close(OUT1);
