[
板情報
|
カテゴリランキング
]
したらばTOP
■掲示板に戻る■
全部
1-100
最新50
|
1-
101-
201-
301-
この機能を使うにはJavaScriptを有効にしてください
|
プログラムスレッド
76
:
マナウス
◆nDpXSJz8i.
:2012/05/09(水) 00:54:05
======marge_csv.pl======
my %address_datas = ();
open(IN, 'address.csv');
while(<IN>){
chomp;
my ($id, $name, $address) = split(/,/, $_, 3);
# (※1)顧客IDをキーとし、対応する名前と住所の配列を保存する
$address_datas{$id} = [$name, $address];
}
close(IN);
# アンケートデータに氏名と住所をマージする
open(OUT, '>result.csv');
open(IN, 'enquate.csv');
while(my $line = <IN>){
chomp($line);
my ($id, $ans1, $ans2, $ans3) = split(/,/, $line, 4);
# この行にマッチする顧客データを検索する
my $ref_data = $address_datas{$id};
# 配列の0番目に名前、1番目に住所が入っている (※1を参照)
my $name = $ref_data->[0];
my $address = $ref_data->[1];
# 出力する
print OUT join(',', $id, $ans1, $ans2, $ans3, $name, $address), "\n";
}
close(OUT);
close(IN);
======diff.pl (1)======
# 2回目のアンケート応募者をハッシュに取り込む
my %enq2_data = ();
open(IN, 'enquate2.csv');
while(<IN>){
chomp;
# IDだけ必要なので、IDだけ取り出す
my ($id) = split(/,/, $_, 2);
# キーを顧客IDとし、目印(フラグ)として1を入れる
$enq2_data{$id} = 1;
}
close(IN);
======diff.pl (2)======
# 1回目のアンケート応募者と2回目の応募者を比較する
open(OUT, '>result.csv');
open(IN, 'enquate.csv');
while(<IN>){
chomp;
# IDだけ必要なので、IDだけ取り出す
my ($id) = split(/,/, $_, 2);
if($enq2_data{$id}){
# どちらにも応募した顧客
print OUT "$id,3\n";
# ハッシュから「1回目応募した顧客」を削除
delete $enq2_data{$id};
}else{
# 1回目だけ応募した顧客
print OUT "$id,1\n";
}
}
close(IN);
======diff.pl (3)======
# 最後に、ハッシュに残ったのが2回目のみ応募した顧客
foreach(keys %enq2_data){
print OUT "$_,2\n";
}
close(OUT);
新着レスの表示
名前:
E-mail
(省略可)
:
※書き込む際の注意事項は
こちら
※画像アップローダーは
こちら
(画像を表示できるのは「画像リンクのサムネイル表示」がオンの掲示板に限ります)
スマートフォン版
掲示板管理者へ連絡
無料レンタル掲示板