gikoha’s blog

個人的メモがわり

宛名職人から年賀家族CSVの変換

今年も年賀状の時間がやってきました

トラブルを避けるため数年前から宛先はCSV書き出しで印刷してもらっています

宛名職人で住所録・送り管理だけしていたけれど、この機能のためだけにバージョンアップ繰り返しているのがすごくもったいない

自前でプログラム書くかな... あるいは goでweb管理にするか..

 

とりあえず宛名職人26から年賀家族用のCSVへの出力変換プログラムは下記。

 

 nengakazoku.pl

#!/usr/bin/perl -w

# 宛名職人から年賀家族 CSVへの変換
# 宛名職人からスマートグループで必要なデータを一覧表示にする
# ファイル>書き出しにてカンマ区切り形式、エンコードUTF-8, 改行コード: LF, 書き出す対象:一覧表示で書き出す
# 姓、名、敬称、姓かな、名かな、自宅〒、自宅住所1,2,3、連名、連名敬称、で書き出す

# このperlを使って変換する
# perl -f nengakazoku.pl < CSV.csv > css.csv
# nkf -s -Lw css.csv >2020-ks.csv

# 来年からは宛名職人やめたいな 毎年アップデート要求するとかクソすぎ

use strict 'refs';
use utf8;
use Encode;
binmode STDOUT, ":encoding(utf8)";
binmode STDIN, ":encoding(utf8)";

print "\"お名前(姓)※必須\",\"お名前(名)※必須\",\"敬称※必須\",フリガナ(セイ),フリガナ(メイ),\"自宅郵便番号※必須\",\"自宅住所1※必須\",自宅住所2,自宅住所3,自宅住所4,様方,連名1(姓),連名1(名),連名1敬称,連名2(姓),連名2(名),連名2敬称,連名3(姓),連名3(名),連名3敬称,連名4(姓),連名4(名),連名4敬称,連名5(姓),連名5(名),連名5敬称,\"会社名1※法人の場合必須\",会社名2,部署名1,部署名2,役職1,役職2,\"会社郵便番号※法人の場合必須\",\"会社住所1※法人の場合必須\",会社住所2,会社住所3,会社住所4,会社連名1(姓),会社連名1(名),会社連名1敬称,会社連名1役職,会社連名1役職2行目,会社連名2(姓),会社連名2(名),会社連名2敬称,会社連名2役職1行目,会社連名2役職2行目\n";

$_ = <STDIN>;

LINE1: while (<STDIN>) {
	chomp;
	($n0,$n1,$n2,$f0,$f1,$a0,$a1,$a2,$a3,$r0,$r1)=split(",", $_);
	$r00="";
	$r01="";
	$r02="";
	$r03="";
	$r10="";
	$r11="";
	$r12="";
	$r13="";
	if(index($r0,"/")>=0)
	{
		($r00,$r01,$r02,$r03)=split("/",$r0);
	}
	else
	{
		$r00=$r0;
	}
	if(index($r1,"/")>=0)
	{
		($r10,$r11,$r12,$r13)=split("/",$r1);
	}
	else
	{
		$r10=$r1;
	}
	printf "%s,%s,%s,", $n0,$n1,$n2;		# お名前(姓),お名前(名),敬称
	printf "%s,%s,", $f0,$f1;				# フリガナ(セイ),フリガナ(メイ)
	printf "%s,%s,%s,%s,,,", $a0,$a1,$a2,$a3;  # 自宅郵便番号※必須,自宅住所1※必須,自宅住所2,自宅住所3,自宅住所4,様方,
	printf ",%s,%s,", $r00,$r10;		# 連名1(姓),連名1(名),連名1敬称,
	printf ",%s,%s,", $r01,$r11;		# 連名2(姓),連名2(名),連名2敬称,
	printf ",%s,%s,", $r02,$r12;		# 連名3(姓),連名3(名),連名3敬称,
	printf ",,,,,,"; 							# 連名4(姓),連名4(名),連名4敬称,連名5(姓),連名5(名),連名5敬称,
	printf ",,,,,,,,,,,,,,\n";  # \"会社名1※法人の場合必須\",会社名2,部署名1,部署名2,役職1,役職2,\"会社郵便番号※法人の場合必須\",\"会社住所1※法人の場合必須\",会社住所2,会社住所3,会社住所4,会社連名1(姓),会社連名1(名),会社連名1敬称,会社連名1役職,会社連名1役職2行目,会社連名2(姓),会社連名2(名),会社連名2敬称,会社連名2役職1行目,会社連名2役職2行目
}