KENT-WEB サポートコーナー 過去ログ [ 0092 ]


記事No: 13880
投稿日: 2015/03/25(Wed) 23:14:43
タイトルCLIP MAILのCSVをタブ区切りにできるでしょうか
ID情報: KIWA
投稿者: KIWA
URLhttp://www.kiwa.net/exihi2015/clipmail-utf/7thKIWA_entryform.html

お世話になっております。
昨日とは別件の質問となりますので新規スレッドを作成しました。

CLIP MAILでCSVデータをダウンロードして、Excelで一覧表を作成して管理したいと思っています。
CSVダウンロードページから「Windows形式 (CR+LF)」でダウンロードすると、1項目ごとではなくカンマでデータが区切られてしまいます(カンマ区切りだから当然かもしれませんが…)
設置しているエントリーフォームは海外向けで、住所欄や英文コメントなどでカンマが多数入力されるため、カンマ区切りではデータがずれすぎて困っています。

暫定対策としては、log.cgiファイルをGETしてテキストエディタで開き、<>をタブに変換してExcelに貼りつけて項目名をひとつずつ削除する、という方法で一覧表を作成するという方法をとっていますが、手間がかかって気が遠くなっております。

カンマ区切りではなくタブ区切りのデータをダウンロードできればいいのではないかとも思ったのですが、どこを修正すればよいかがわからず、質問させていただくことにしました。

タブ区切りでログをダウンロードする方法、もしくはカンマ混じりの値でも項目ごとでひとまとめとしてCSVログを取得できる方法がありましたらご教示いただけますと幸いです。
何卒よろしくお願いいたします。


記事No: 13881
投稿日: 2015/03/26(Thu) 10:38:42
タイトルRe: CLIP MAILのCSVをタブ区切りにできるでしょうか
ID情報: teketen
投稿者: てけてん

最新のv5.02だと、ログをダウンロードする際に、カンマを削除するようになりましたが、英文でカンマを消すと駄目な場合もあると思います。
他の改造もされているようなので、今ご利用のバージョンを使うという前提で、以下の改造をしてみてください。
但し、私は、v3.44は手元にない為、最新のv5.02での記述となります。
v3.44と照らし合わせて、変更して下さい。
もしも、大きく記述が変わっていて、変更方法が分からない場合は、admin.cgiをadmin.txtにしてサーバーにアップして、そのアドレスを教えてください。

※改造は、自己責任でお願いします。もしも動作が変になった場合は、もとに戻してください。


admin.cgi

#-----------------------------------------------------------
# ログダウンロード
#-----------------------------------------------------------
sub menu_list {



# HTML変換
$val =~ s/&lt;/</g;
$val =~ s/&gt;/>/g;
$val =~ s/&quot;/"/g;
$val =~ s/&#39;/'/g;
$val =~ s/&amp;/&/g;

$csv{"$i<>$key"} = $val;

という部分がありますので、その

$csv{"$i<>$key"} = $val;

の前の行に


# 修正による追加 ■■
if($val =~ /,/) {
$val = $val =~ /"/ ? qq|""$val""| : qq|"$val"|;
}
# ここまで


を挿入してください。
CSVの形式に則って、カンマが入っている場合は、ダブルクォート(")で値を括り、その値にダブルクォートが入っている場合は、二重にダブルクォートで括るという処理をしています。

---------------------------------
2015年3月28日追記

最新版のv5.02で、入力データのカンマを削除せずに、カンマ区切りのCSVデータを取得したいという方へ。
上記の改造と、念の為に、その少し下の行にある

# CSV
foreach (1 .. $i) {
my $csv;
foreach my $key (@item) {
$csv .= qq|$csv{"$_<>$key"},|;
}
$csv =~ s/,$//;

print "$head{$_}$csv$br{$in{br}}";
}

という部分の

$csv =~ s/,$//;

を削除するか

# $csv =~ s/,$//;

のように変更しておくと良いと思います。


記事No: 13883
投稿日: 2015/03/26(Thu) 22:06:19
タイトルRe^2: CLIP MAILのCSVをタブ区切りにできるでしょうか
ID情報: KIWA
投稿者: KIWA
URLhttp://www.kiwa.net/exihi2015/clipmail-utf/7thKIWA_entryform.html

てけてん様

admin.cgiを改造してCSVダウンロードしてみました。
カンマ混じりでもひと項目ごとで綺麗にまとめられた、
まさに欲しかった形のCSVをダウンロードすることができました!

困り果てていたので、本当に助かりました。
ご教示いただき、ありがとうございました!


[検索ページ] [掲示板]