#!/usr/local/bin/perl # G-LIGHT ログ変換 v4 → v5 ( 2003/10/13 ) # created by (c) KentWeb # # [ 使い方 ] # 1. glight.logと同一ディレクトリへFTP転送する(アスキーモード) # 2. パーミッションを755に設定する # 3. ブラウザから logchg5.cgi へアクセスし、「変換終了」の文字が # 表示されれば、ログ変換は終了。 # 4. 旧ログは変換前に「必ず」バックアップを取っておくこと。 #------------# # 基本設定 # #------------# # ログファイル $logfile = './glight.log'; # アイコン指定 # → glight.cgiの設定に合わせる事 $ico1 = 'boy1.gif boy2.gif girl1.gif girl2.gif heisi1.gif heisi2.gif majo.gif king.gif ani1.gif ani2.gif'; # 管理者アイコン指定 # → glight.cgiの設定に合わせる事 $ico3 = 'dog.gif cat.gif'; #------------# # 設定完了 # #------------# @ico1 = split(/\s+/, $ico1); @ico3 = split(/\s+/, $ico3); open(IN,"$logfile") || &error("Open Error: $logfile"); @data = ; close(IN); if ($data[0] !~ /^GLIGHT/) { &error("これは v4 のデータではありません"); } shift(@data); open(OUT,">$logfile") || &error("Write Error: $logfile"); foreach (@data) { s/\n//; ($no,$dat,$nam,$eml,$area,$ico,$icom, $com,$res,$url,$hos,$pw,$sub,$tim) = split(/<>/); if ($url) { $url = "http://$url"; } $f=0; foreach $i (0 .. $#ico1) { if ($ico1[$i] eq $ico) { $f++; $ico=$i; last; } } if (!$f) { $ico = 0; } if ($icom) { $f=0; foreach $i (0 .. $#ico3) { if ($ico3[$i] eq $icom) { $f++; $icom=$i; last; } } if (!$f) { $icom = 0; } } print OUT "$no<>$dat<>$nam<>$eml<>$area<>$ico<>$icom<>$com<>$res<>$url<>$hos<>$pw<>$sub<>$tim<>\n"; } close(OUT); &header; print < G-LIGHT ログ変換 v4 → v5 EOM } #--------------# # エラー処理 # #--------------# sub error { &header; print <ERROR ! $_[0] EOM exit; }