トップページ⇒php
1001コメント308KB

【Perl】初心者コーナー Part15

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん02/08/08 23:19ID:???
いらっしゃーい、Perlの「コーディング」で困ってる人のスレです。

1:自分はこう言う事がしたい。
2:それでこんな風にやってみたが・・・
3:それだとこんなエラーが出て上手く行かなかった。

1と3が無いと誰も答えられないよ。
良い回答は良い質問から。一緒に勉強しましょう。

CGIだけど、なんか質問ある? Part 6 (その2)
http://pc.2ch.net/test/read.cgi/php/1025930486/
参考書籍の話題は【【Perl,CGI】参考書籍 第2版】
http://pc.2ch.net/test/read.cgi/php/988809842/
その他の雑多な話題は、【CGIに依存しないPerlの話題一般】
http://pc.2ch.net/test/read.cgi/php/991313362/
スクリプトの改造依頼は 【スクリプト改造工房 Part4】
http://pc.2ch.net/test/read.cgi/php/1012839651/

過去ログ、その他の役立ち情報は>>2-10あたりを見よう。
0459nobodyさん02/08/29 15:00ID:???
CGI、とくにFormまわりの質問なのでスレ違いかもしれませんが

@dataにテキストファイル(S-JIS)から文字列を読み込んで
「print "<TEXTAREA name=\"text\" cols=\"80\" rows=\"16\">@data</TEXTAREA>";」
としたときに、なぜか@dataの2行目以降行頭に半角スペースが入ってしまいます

おかしいな、と思って「print @data;」してみても
行頭に半角スペースが入っている事はありませんでした

改行コードの問題かと思いforeachで「$_ =~ s/\r\n/\n/g;」としても状況に変化がありません


IE,NN共に同じ症状を確認しているのですが
これはHTML、あるいはブラウザの問題なのか、Perl側の問題なのか
どうやって回避したらいいんでしょうか?
046029202/08/29 15:01ID:???
$XXX =~ s/Z/A/;
$XXXに入ってる「Z」を「A」に書きかえる。(最初に見つかったやつだけ)

$XXX =~ s/Z/A/g;
$XXXに入ってる「Z」を「A」に書きかえる。(すべて)

$XXX =~ s/Z/A/i;
$XXXに入ってる「Z,z」を「A」に書きかえる。(大文字小文字を区別しない)
0461_02/08/29 15:02ID:???
>>459
変数展開を調べること
046229202/08/29 15:03ID:???
>>459
HTMLソースを見ても半角スペース入ってるのか?
046345902/08/29 15:06ID:???
>461
テキストデータには展開される可能性がある文字列はありませんでした
・・・そういう意味じゃないのかな

>462
はい、TEXTAREAで挟むと半角スペースが現れますが
「print @data;」だとソースでも半角スペースは現れません
0464?02/08/29 15:08ID:???
なるほど!
sが、置き換えるって意味ですか!
ホントおばかでした。
スレ汚しすいませんでした。
皆さん有難うございました!
0465_02/08/29 15:08ID:???
>>463
"@array" と @array の違い(変数展開)を調べること
046645902/08/29 15:17ID:???
>465
うーん、直接その答えにはたどり着けませんでしたが
「print "<TEXTAREA name=\"text\" cols=\"80\" rows=\"16\">" . @data . "</TEXTAREA>";」
とすることで解決しました

ありがとう
046729202/08/29 15:27ID:???
>>
0468nobodyさん02/08/29 15:27ID:???
>>466
( ´,_ゝ`) プッ
0469nobodyさん02/08/29 15:28ID:jYAiqFv3
ユーザーのプロバイダのアドレス?調べるのってどれでしょう?
*******.ap.plala.or.jp
こんなやつ
$ENV{'REMOTE_ADDR'};
だとIPアドレスが表示されるようなのですが
047029202/08/29 15:29ID:???
変なとこで送信してもた。スマソ。

>>466
$" という変数を見てみな。デフォルトでは半角スペース入ってるから。
この変数はprint "@xx";の時に区切りとして使うものを入れてるモノ。
先だって
$" = '';
としておけば半角スペースは無くなる。
0471nobodyさん02/08/29 15:30ID:???
>>469
アドレスが知りたいのなら、IPアドレスがいいじゃないかアケチくん。
047229202/08/29 15:32ID:???
$ENV{'REMOTE_HOST'}
ただし、最近のプロバイダではここにリモホが入ってる設定にしてるところは少ない(無駄だから)
その場合は次のコードで行けるだろう。

$ENV{'REMOTE_HOST'} = &nslook($ENV{'REMOTE_ADDR'});

sub nslook{
local($x)=@_;
local($ip,$addr);
if($x=~/([0-9]+)\.([0-9]+)\.([0-9]+)\.([0-9]+)/){
$ip="$1.$2.$3.$4";
$addr=(gethostbyaddr(pack('C4',$1,$2,$3,$4),2))[0];
if($addr ne ""){
return $addr;
}
}
return $x;
}
047346902/08/29 15:33ID:oKWRspRK
>>471
そうなのかしら。
でもぱっと見わかりやすいのもいいわ。
っていうかじゃぁ両方で。
047446902/08/29 15:35ID:oKWRspRK
およよ。
そう、REMOTE_HOSTでやってみたら
何も取得できなかったんですよ。
上のはアドレスから変換してるのでしょうか?
047529202/08/29 15:39ID:???
>>474
nslookというサブルーチンに、IPアドレス$ENV{'REMOTE_ADDR'}を教えて
リモートホストを教えてもらって、空っぽだった$ENV{'REMOTE_HOST'}に代入するコードじゃよ。
0476nobodyさん02/08/29 15:49ID:???
>474
何を取得できてるの?

foreach(sort(keys(%ENV))){$chk .= "$_ is $ENV{$_}<br>\n"}
0477nobodyさん02/08/29 15:53ID:???
>>476
罠です!
047847602/08/29 15:57ID:???
別に他意はないんだけどさ。これでいい?

foreach(keys(%ENV)){$chk .= "$_<br>\n"}
047946902/08/29 16:03ID:KExh1vW6
>>472
やってみましたが、それでもIPアドレスになっちゃう。
CGIサーバーはPlalaです
自分のPC上でやるとパソコンの名前が表示されます。
(ActivePerl+httpd)
0480nobodyさん02/08/29 16:08ID:???
Plalaはどうだかしらないが、IPアドレスから名前に変換をサポートしていない鯖がある。
あきらめるか、別の鯖で試す。
0481nobodyさん02/08/29 16:32ID:SCkpIe5L
Perlで http通信を行い特定のHPからhtmlを取得後
パースして、htmlから特定のデータを取得したいのですが

必要なモジュールとか、ソースとか解説のHPがあれば教えてください。
0482nobodyさん02/08/29 16:33ID:???
>>481
過去レス読まない典型ですね。
048346902/08/29 16:50ID:1fSV4HtQ
$host = gethostbyaddr(pack("C4", split(/\./, $host)), 2) || $host;
こんなのでいけました。
0484nobodyさん02/08/29 17:01ID:SCkpIe5L
>482
何番目のスレの何番になります?
それ読みますから教えてください。
0485nobodyさん02/08/29 17:05ID:???
>>484
http通信だからCGIスレ読め
0486初心者の依頼者(´∀`; ◆3zTzMwh2 02/08/29 17:16ID:w2vhS8x7
えっと、
↑に答えが出てることはわかっているんですが、理解できません。

fusianasanで表示されるやつはどうやって取得するんですか?
0487nobodyさん02/08/29 17:18ID:???
>>486
??? 日本語 不自由ですか?
0488初心者の依頼者(´∀`; ◆3zTzMwh2 02/08/29 17:20ID:w2vhS8x7
>487
別に
048929202/08/29 17:27ID:???
>>484
>>237
0490nobodyさん02/08/29 17:30ID:SCkpIe5L
>489
ありがとうございます。
0491nobodyさん02/08/29 18:02ID:???
>>482
2chの使い方になると思うんだが、この板から全文検索したいんだが、どうすればいいの?
「全部表示してブラウザで検索」しかないのか? それとも googleに拾ってもらわなければいけないのかな?
0492nobodyさん02/08/29 18:03ID:???
http://2ch.dyn.to/

google de "string site:www.2ch.net"
0493nobodyさん02/08/29 18:19ID:???
>>492
サンクス!!
049442402/08/29 19:47ID:k9SFERS8
>>425 様
有難うございました。
私の勘いで、作成したいスクリプトの記述が間違っていました。
すみませんでした。
(勉強の為、書いて頂いたソースは保存しました)

以下、教えて頂きたい内容です。
任意の文字列が含まれる1行を抽出し、複数の該当文字列を
新しい文字列に置換えるスクリプトを作成したいのですが、わかりません。
(置換え対象の文字列には、手入力の文字列も含まれます)

495の様に、メールアドレスで行を取得し、
@oldに格納されている全ての文字列を個々の変数に代入して、
ファイルに出力させるスクリプトを作成しましたが、うまく動作しません。

確認出来たエラーは2点です。
1.ファイルの一行目しか$lineに入りません。
 その為、該当レコードがあるにも拘らず、「データがありません」と
なってしまいます。

2.レコードの改行が削除され、次のデータが同じ行に出力されてしまいます。
($old1,$old2,$old3,$old4,$old5) = split(/,/,$old);
@oldから抽出する上記以外の方法がわからず、困っています。

ソースは495です。お願い致します。
(改行が多く書き込めなかった為、分けました。)
049542402/08/29 19:47ID:k9SFERS8
494の続きです。
置き換えたい変数です→($new1,$new2,$new3,$new4,$new5)
open(IN,"data/data.csv") or die;
while($line = <IN>){
chomp($line);
if($line =~ $mail){
push(@old,$line);
} else {
print "該当するデータがありません。\n";
exit(0);
}
foreach $old (@old){
($old1,$old2,$old3,$old4,$old5) = split(/,/,$old);
}
open(OUT,"+<data/data.csv") or die;
print OUT "$old1,$new2,$new3,$old4,$new5";
close(OUT);
print "書き換えが完了しました。\n";
exit(0);
}
close(IN);
exit(0);
0496 ◆hIr6YukI 02/08/29 19:49ID:???
sage
0497nobodyさん02/08/29 20:22ID:???
>>494-495
何をやりたいのだか解らないんだけど。
>>425 をこうするって事かしら。

foreach(@old){
if(s/$mail/$replace/g){push(@new,$_)}
}
print OUT "@new";

使用している各関数がどういう働きをするものかよく調べた方が良いと思います。
ラクダ本を買うとか。
0498nobodyさん02/08/29 21:09ID:mQvrBYqz
すいません、根本的なところで質問です。
何も手を加えてないのに、昨日まで動いてたcgiが動かなくなったんですが、
これは何が原因でどうすれば直るんでしょう。

kentのyybbsを色々いじってたんですけど、文法エラー解消しても動かないので
まずは無改造のスクリプトをただ上げたんです。
そしたら動かない。
しかも、それまで使ってたスクリプト(2つあるうち1つだけ)が突然internal server error。
頭抱えてます。
どなたか助けてください。
0499nobodyさん02/08/29 21:12ID:0ltwZgpC
■10.000円の高額収入
 1件につき最大10.000円の高額収入。月収100万円以上も可能。
■画期的なビジネス!
 インターネットを利用したこれまでにない斬新で画期的なビジネスです。
■誰でも出来ます!
 インターネットができる環境の方なら誰でも参加可能です。
 インターネットを利用したビジネスですので、自宅や会社で好きなときにで
 きるビジネスです。
■専門的な知識は一切不要!
 ビジネスに必要なツールは全て当社で用意いたします。
 また、サポートも万全です。
■詳細は今すぐこちらから
 http://www.future-web.tv/haru/
0500nobodyさん02/08/29 21:35ID:???
>>498
改造してないBBSなんでしょ?
kentのサポート板で聞けよ
0501nobodyさん02/08/29 21:57ID:???
>>498
Internal Server Error ならhttpdサーバのログに
エラーが出てるはず。それを確認しる。
0502nobodyさん02/08/29 21:58ID:???
>>500

無改造というのはコイツが手を加えてないということだろ
050349802/08/29 22:31ID:mQvrBYqz
やっぱりkentさん所で聞くのが早いですかね。
逝ってきます。
050442402/08/29 23:02ID:zsUv5K1P
>>497 様
レス有難うございました。
書き方が悪くてすみませんでした。

>>425 様にも>>426で教えて頂いたのですが・・・。

置換え前の文字は$mail以外、変数では無いので
マッチさせる事が出来ない状態でした。
ファイルから文字を取得し、変数に格納したいと思っていました。
入力フォームを作り直します。
050550502/08/29 23:31ID:kiu2pPYa
sub make_html{
open(HTML, ">hoge.html") || &error("HTMl化に失敗しました。");
print HTML &end;
close(HTML); }
開いたファイル(hoge.html)に書き込みたくて上のように記述したのですが、
ファイルを開いて直接サブルーチン(&end)を使うのは無理なのでしょうか。
0506_02/08/30 00:12ID:???
      ,一-、
     / ̄ l |   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
    ■■-っ < >>505んな こたァない
    ´∀`/    \__________
   __/|Y/\.
 Ё|__ | /  |
     | У..  |
0507nobodyさん02/08/30 10:39ID:???
>>506
end がどうなってるか一応聞いてやれよ。
050850502/08/30 13:07ID:tuhObyZ6
sub end{
&header;
open(IN,"$file") || &error("$file を読み込めません");
@lines = <IN>;
   close(IN);

foreach $line (@lines) {
local($name,$url,$mail,$body,$hogehoge) = split(/<>/,$line);
&output;
}
&footer;
exit; }
こんな感じです。
0509_02/08/30 13:12ID:???
>>508
exit; はいらんよ、だって書きこんだ後 close している意味ないじゃん。
0510 02/08/30 13:29ID:UPHK1/CW
フォントサイズの変更や入室後の名前変更ができないチャットで、
フォントサイズを大きくしたり、名前を変更している人がいました。

どうやったらできるのでしょうか?
0511nobodyさん02/08/30 13:40ID:???
>>510
ソース見ないとわかりません。
0512nobodyさん02/08/30 13:43ID:???
>>508
戻り値を print 死体なら
return @lines;
だろうけど…。どう説明して良いやら。

>>510
そのチャットの管理人に聞いて下さい。
0513  02/08/30 13:45ID:UPHK1/CW
>>511
ソースを書き換えるのですか?
どうやれば書き換えられますか?
051451102/08/30 14:23ID:???
>>513
ソースを見てスクリプトの脆弱な部分を探すんだよ。
0515_02/08/31 12:58ID:???
($_="\xa8\xdc\xa6\xe7\xc9\xbe\xc8\x49")=~s/./\x82$&/g;
substr($_,  8, 1)= "\x89";
substr($_, 14, 1)= "\x81";
print;
0516>_02/08/31 13:40ID:???
%b5%cf%b4%d3%c5%b0
051751702/09/01 03:40ID:+nm+B08x
二つのリファレンス(一方から一方を辿ることができる)の位置関係を
知りたい場合はどうしたらよいでしょうか?
例えば
$a = { 'b' => [ $c = { 'd' => 'e' } ] };
とあった場合に、
&rel($a,$c) = '{b}[0]' みたいな出力を得たいのですが…
0518nobodyさん02/09/01 10:46ID:???
>>517
とりあえずヒントだけ。

・関数 ref
・$a = {}; print $a;
0519nobodyさん02/09/01 10:55ID:???
以前もあったな。その質問
0520_02/09/01 11:03ID:???
そう、以前にもあったけどまだやってたのか・・・
一応、やってみたけどこんな感じでいいのかな?

sub rel{
 my( $key, $i, $rel );
 GOOD_BYE:
 for $key ( keys %{$_[0]} ){
  for ($i=0; $i<=$#{${$_[0]}{$key}}; $i++){
   #if ( ${${$_[0]}{$key}}[$i] == $_[1] ){ print "goo\n"; }
   $rel= "{$key}[$i]",last GOOD_BYE if ${${$_[0]}{$key}}[$i] == $_[1];
  }
 }
 $rel;
}
0521_02/09/01 11:05ID:???
ちょっと見づらいかな、もいちど

sub rel{
    my( $key, $i, $rel );
    GOOD_BYE:
    for $key ( keys %{$_[0]} ){
        for ($i=0; $i<=$#{${$_[0]}{$key}}; $i++){
            $rel= "{$key}[$i]",last GOOD_BYE if ${${$_[0]}{$key}}[$i] == $_[1];
        }
    }
    $rel;
}
0522 ◆4XfSMGTg 02/09/01 13:31ID:???
超絶ハッカー
何でも聞け
0523nobodyさん02/09/01 13:34ID:???
>>522
ルビ厨でつか?
0524 ◆4XfSMGTg 02/09/01 13:39ID:???
聞け
0525 ◆4XfSMGTg 02/09/01 13:41ID:???
    
0526 ◆4XfSMGTg 02/09/01 13:44ID:???
Perl上級車俺がどんな質問二問k0尾たっるぞ!
0527nobodyさん02/09/01 13:54ID:???
彼女を逝かせる超絶テクを教えてください。
052851702/09/01 15:43ID:+nm+B08x
>>518
やっぱりbreadth-firstサーチをしないとできないってことっすかね?
>>520,521
ありがとうございます。が、より一般的なケース(リファレンスの構造を問わない)が対象なのです…
052951702/09/01 15:47ID:+nm+B08x
内部構造的にはGCのためのリファレンスカウントがあるはずだとおもうので、
それをどうにかして逆に辿れないものかと思うのですが…
0530nobodyさん02/09/01 16:23ID:oCDCWNWk
◆4XfSMGTg はバッカーですか?
0531 ◆4XfSMGTg 02/09/01 16:27ID:A6Gp7Ink
会社員で日曜日によく来ます。
0532nobodyさん02/09/01 17:54ID:???
ここは初心者コーナーとは思えない
0533_gunzip ◆H/XdoCNg 02/09/01 18:23ID:???
>>529
いい加減だが...。

#!/usr/bin/perl

use strict;
use Data::Dumper;

my $a = { d => "e" };
my $b = { b => [$a] };
my $c = { f => { g => $b } };

print 'rel($b, $a) = ', rel($b, $a), "\n";
print 'rel($c, $a) = ', rel($c, $a), "\n";
print 'rel($c, $b) = ', rel($c, $b), "\n";

sub rel ($$)
{
    my $dumper = new Data::Dumper([@_]);
    $dumper->Indent(0);
    $dumper->Dump() =~ /\$VAR2\s+=\s+\$VAR1->(.+);$/;
    return $1;
}
-------------------------------------------
rel($b, $a) = {'b'}[0]
rel($c, $a) = {'f'}{'g'}{'b'}[0]
rel($c, $b) = {'f'}{'g'}
053451702/09/01 23:45ID:???
>>533
そうですよね…、クイックハックならData::Dumperを使うのが一番手っ取り早いんですが、
リファレンス構造を全てtraverseするので実行速度が…
ダイレクトに辿るとしたっら、やっぱり要素ごとにリファレンス元を
保持するようなarrayを持たせるしかないですかね。。
0535nobodyさん02/09/01 23:58ID:???
何に使うのか分からないのだが...
デバッガでも作ってるの?
0536nobodyさん02/09/02 01:22ID:???
WebデザインとWebプログラミングってどう違うんですか?
ネット初心者なんで本当に分かりません。誰か教えて下さい。
0537nobodyさん02/09/02 01:29ID:???
Webデザイン
HTML、CSS,JavaScriptやブラウザーなど

Webプログラミング
PerlやCGI、PHP,Ruby等
0538nobodyさん02/09/02 01:31ID:???
Webデザイン→デザイナーがやる
Webプログラミング→プログラマがやる
0539nobodyさん02/09/02 01:34ID:???
>>537
ありがとうございます。と言っても、本当はよくわかりません(w
仕事の内容がどう違うか分かり易く教えて頂けるとありがたいんですが。

>>538
ありがとうございます。
0540初心者02/09/02 02:28ID:???
Perlを使って掲示板などを作りたいんですが、
最初にエディタやコンパイラーは、何を落とせばよいのでしょうか?
先輩の皆様お薦めのものなどございますでしょうか?
使ってるPCはWinMEなのですが、ご教授お願いします。
0541nobodyさん02/09/02 02:31ID:???
>エディタ
自分が使いやすいと想うテキストエディタを使え。

>コンパイラー
落ち着け。
ActivePerlでも落としとけ。
0542nobodyさん02/09/02 02:48ID:???
複数のファイルを読み込んでsortさせて表示したいのですが。
sortはできたのですが
opendir(DIR, "$logdir") ;
@2ch = readdir(DIR);
closedir(DIR);
ファイル名を読み込んでいる様子で。
検索してやり方を探してみたのですが自分では分かりませんでした。
アドバイスお願いいたします。
054351802/09/02 06:08ID:???
>>532 >>535
禿同。(w

>>528
BFS でなく DFS ですかね。>>533 とどっちが速いかは
調べてませんが、泥臭く書くとこう。

sub rel {
  my ($foo, $bar, $idx) = @_;
  my $rv;

  if (ref $foo eq 'ARRAY') {
    for (my $i = 0; $i < @$foo; $i++) {
      $foo->[$i] eq $bar && return $idx . "[$i]";
      $rv = rel($foo->[$i], $bar, $idx . "[$i]") and return $rv;
    }
  }
  elsif (ref $foo eq 'HASH') {
    foreach my $k (keys %$foo) {
      $foo->{$k} eq $bar && return $idx . "{$k}";
      $rv = rel($foo->{$k}, $bar, $idx . "{$k}") and return $rv;
    }
  }
  return;
}

つかそこまで速度を求めるほどデカい or 深いんでしょうか?
これ以上はもう perl のソース読んでねとしか。
0544nobodyさん02/09/02 06:28ID:???
>542
readdirのリファレンスを穴が空くほど読め
それはopendirしたディレクトリのファイルリストを得る関数だ

だいたい複数ファイルを読み込んでsortって何だ?
そのファイルにはASCIIデータが1行しか入ってない事が保証されてんのか?

要リファクタリングと思われ
0545nobodyさん02/09/02 07:05ID:???
>>542
@2ch は無理だよ
変数名は数字で始まってはいけませn
0546nobodyさん02/09/02 10:34ID:???
数字から始まっていたら、全部数字で無ければいけないじゃ無いっけ?
0547nobodyさん02/09/02 10:42ID:???
>>546
そのガセのネタ元をさらすべし。
0548nobodyさん02/09/02 10:45ID:Bmg2BPcQ
時間取得で質問があります。

月と日にちを取得したいのですが、
$tm=time;
($sec,$min,$hour,$mday,$mon)=localtime $tm;
とやらないといけないのですか?
$sec,$min,$hourが余計なんですが...
0549nobodyさん02/09/02 10:48ID:???
http://www.big.or.jp/~mio/ga/pl/plman/plvari.htm#変数
0550nobodyさん02/09/02 12:02ID:???
書き込んだメッセージの中にアドレス(http://〜)が含まれていたら
<a href="" target="_blank"></a>
で囲みたいのですが、どうやってアドレスと判定すればよいのでしょうか?
0551nobodyさん02/09/02 12:27ID:???
>>548
仕様です
>>550
$message =~ s/(http:\/\/[\w\/\.\?~&=@;#%-]+)/<a href="$1" target="_blank">$1<\/a>/gi;
0552nobodyさん02/09/02 12:32ID:???
>>548
(localtime(time))[0..8]
055354802/09/02 12:32ID:???
>>551
仕様ですか。
ありがとうございました。
055454802/09/02 12:39ID:???
>>552
なるほど。
$tm=time;
($mday,$mon)=(localtime $tm)[3,4];
で、できました。
ありがとうございました。
0555 ◆JAPH9PWA 02/09/02 12:42ID:???
>>548
(undef,undef,undef,$mday,$mon)=localtime;
055654802/09/02 12:46ID:???
>>555
試してみました。それでもできるんですね。
ありがとうございました。
055755002/09/02 12:51ID:???
>>551さん
できました!ありがとうございます!
055854202/09/02 19:45ID:???
&lock_open(TXT, "a.txt");
@txt = <TXT>;
&unlock_close(TXT);

open(OUT,"> x.txt");
print OUT "@txt";
close(OUT);

&lock_open(TXT, "a2.txt");
@txt = <TXT>;
&unlock_close(TXT);

open(OUT,">> x.txt");
print OUT "@txt";
close(OUT);

&lock_open(TXT, "x.txt");
@txt = <TXT>;
&unlock_close(TXT);
foreach $m (@txt) { chop($m); }
でできました。opendirの意味がいまいちわからなかったので544さんの「それはopendirしたディレクトリのファイルリストを得る関数だ」
の助言で納得できました。おさわがせしてすみませんでした。ありがとうございます。

■ このスレッドは過去ログ倉庫に格納されています