IS02を買ったからガラケーから電話帳の移行

W43K→からIS02への移行をした

1.W43KにマイクロSDを挿して電話帳を保存

2.スマートフォンアドレス帳移行ツールでIMPORTすればOK

ちなみにW43Kのアドレス帳はvcf形式になっていた
csvに変換してから適当に編集してからIS02にIMPORTした
vcf→csv
#!/usr/bin/perl
use feature qw(say);
use warnings;
use strict;

our %date;
our @order;
while (<DATA>){
chomp;
$date{$_}=1;
push (@order,$_);
print "$_,";
}
print "\n";

my $infile=shift || "20100801.vcf";

open (FH,$infile) or die $!;
my %hash;
while (<FH>){
chomp;
my ($key,$value) = split (/:/);
&check($key);
unless (defined $hash{$key}){
$hash{$key}=$value;
}
elsif ($key eq "EMAIL") {
$hash{"EMAIL2"}=$value;
}
else {
die "Error!";
}
if ($key eq "END"){
for (@order){
$hash{$_} ||="";
print "$hash{$_},";
}
print "\n";
%hash=();
}
}
close FH;

sub check {
unless ($date{$_[0]}){
die "Data Error -> $_[0]";
}
}

__END__
BEGIN
VERSION
N
FN
SORT-STRING
TEL;TYPE=WORK
TEL;TYPE=CELL
TEL;TYPE=PCS
TEL;TYPE=HOME
TEL;TYPE=FAX
EMAIL
EMAIL2
BDAY
X-GN
END


csv→vcf
#!/usr/bin/perl
use feature qw(say);
use warnings;
use strict;

our @order;
while (){
chomp;
push (@order,$_);
}

my $infile = shift || "adress.csv";
open (FH,$infile) or die $!;
$_=;
while (){
chomp;
my @list=split (/,/);
s/^\"(.*)\"$/$1/ for @list;
my $i=0;
for (@order){
print "$_:".$list[$i]."\n" if (defined $list[$i] and $list[$i] ne "");
$i++;
}
}
close FH;


__END__
BEGIN
VERSION
N
FN
SORT-STRING
TEL;TYPE=WORK
TEL;TYPE=CELL
TEL;TYPE=PCS
TEL;TYPE=HOME
TEL;TYPE=FAX
EMAIL
EMAIL
BDAY
X-GN
END