WEB相談室

Webページ作成に関しての何でも掲示板です。

タイトル:自動的にデータ処理

0:[投稿] ゆう。 [2002/03/04 01:04 ][環境:WIN+NN WIN系+Perl]

お世話になっております。

今作ろうとしているプログラムは、
過去ログファイル、データファイルの2つで構成されていて、
データファイルには本日からのデータが10件入っているとします。
そして昨日までのデータは過去ログファイルに入っています。

そこで本題ですが、日付が変わったら一番古い1件のデータを過去ログに追加し、
その代わりに新しい1件分(10日後)のデータをデータファイルに追加したいのです。

もし1日アクセスが無くて2日後にアクセスが合った場合には、その日以前の複数日
のデータを過去ログに追加し、足りない2件分のデータをデータファイルに追加
することは出来るのでしょうか。

追加するデータは、日付と固定されている数字です。

流れで表しますと、

例 本日は3月3日

過去ログには3月2日までのデータが入っている。
データファイルには3月12日までのデータが入っている。

       ↓

3月4日にアクセスがあった

       ↓

3月3日分のデータを過去ログへ。
3月13日の日付入りのデータをデータファイルに追加。

       ↓

3月6日にアクセスがあった。

       ↓

3月4、5日の2日分のデータを過去ログへ。
3月14、15日の2日分の日付入りのデータをデータファイルに追加。

このようになります。

アクセスが5日ほど無かった場合には次にアクセスがあった5日後には
アクセスがあった日以前のデータを過去ログへ移動させ、
新たに新しい5日分のデータをデータファイルに追加という感じになります。

過去ログに昨日までのデータを追加する方はわかるのですが、
新たに足りない分のデータを追加する方法が浮かんできません。

どなたかご教授の程よろしくお願い致します。


1:[回答] えび [2002/03/04 14:33 ]

長々書いていただいて申し訳ないのですが、なんだかよく分かりませんでした。
データとは一体何のデータですか?
そのデータはどういうタイミングで登録されるのですか?


2:[回答] 。 [2002/03/04 14:40 ]

過去ログとデータファイルで一日分を限定できるキーワードは、ありますか?
それがあれば、あとは、日付の比較をうまくやるとか。


3:[回答] ゆう。 [2002/03/05 00:16 ]

えびさん、。さん回答ありがとうございます。
説明不足ですみませんでした。

えびさんへ

データは、
日付と空き部屋の数が入っているものです。
例えば、
2002/3/4,20
2002/3/5,20
2002/3/6,20
2002/3/7,20
2002/3/8,20
2002/3/9,20
2002/3/10,20
2002/3/11,20
2002/3/12,20
2002/3/13,20
という風にデータはカンマ区切りで入っていて、
初期値としてあらかじめ今日から10日分は手作業で
入れておきます。そして3月4日にアクセスがあった時は、
データファイルの中身は変化しませんが、日にちが変わって
3月5日にアクセスがあった時に、一番最初のデータ
すなわち、2002/3/4,20というデータを過去ログの方へ
移行します。そしてその代わりに、2002/3/14,20という
10件目から1日足した日付のデータをデータファイルに
自動的に追加したいのです。もし3月5日にアクセスが
無くて3月6日にアクセスがあった時には、3月6日以前の
データ、すなわち3月4日と5日の2件のデータを過去ログへ
移行し、2002/3/14,20と2002/3/15,20の2つのデータを
自動的に追加したいのです。

。さんへ

過去ログはデータを追加するだけなので見ることにしか使いません
データファイルには1日1件分しかデータはなく、データファイルに
本日以前のデータが入っていたら過去ログへ移行するという処理を
させなければなりません。
その部分はいいんですけど、その後は過去ログに本日以前のデータが
移行されたため、データファイルには10件分はデータが入っていません。
そのため、データファイルの最後のデータの日付に1ずつプラスした
データを追加していこうと考えています。

特に足りない件数のデータをデータファイルに追加する部分のプログラムが
考えつかずに立ち止まっているところです。

まだ文章的にわかりづらいところがあるかもしれませんが、よろしくお願い致します。


4:[回答] えび [2002/03/05 12:40 ]

>そしてその代わりに、2002/3/14,20という10件目から1日足した日付のデータをデータファイルに自動的に追加したいのです。
 日付は分かりますが、その 20 という数字は何処から出てくるのでしょうか?
 20 で固定だというなら、何も考えずに現在の日付から10日分の日付を生成して書き出せば良いでしょうし、固定で無いならデータをどこかから拾ってくる必要があります。


5:[完了] ゆう。 [2002/03/07 23:40 ]

返事が遅くなってすみません。
結論から言いますと、完成しました。
自動的にデータを追加する方法の判断で配列の要素数を確認して、
その件数が設定した数を下回っていた場合に
my $temptime = $^T + $i * 24 * 60 * 60;
my @times = localtime($temptime);
my $r_day = $times[3];
my $r_mon = $times[4] + 1;
my $r_year = $times[5] + 1900;
をfor文の中で使って
足りない分だけ繰り返すことで実現できました。

お騒がせしてしまってすみませんでした。

回答していただいた えびさん・。さん本当にありがとうございました。

回答(必須): 状態:

お名前(必須):

e-mail:

URL:




[戻る]

ChaichanPAPA's World