- ベストアンサー
記録ファイルの自動作成について
掲示板のようなCGIで記事の記録用ファイルを自動で作成することは可能でしょうか? 例えば記録件数が100件を超えた時、別の記録ファイルを自動作成し、そちらに古いものを記録するというようなものです。 ファイル自動作成のソースを教えていただくと助かるのですが、参考になるようなURLがありましたら教えて下さい。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
私が説明したのは、常に最新のものを100件分記録用ファイルに保存しておき、溢れ出た 分を別の古いデータ記録用に保存する方法です。 最初の101件目に到達した時点で古い記録用ファイルが初めて作成されますので、これも 自動作成といえます(アペンドモードでもファイルがなければ自動的に作成されます)。 よくあるやり方なんで、誤解をしたのかもしれません。 >別ファイルを100件ずつとか、年号別にまとめたいという >場合はバックアップの取り方に工夫が必要になりますが、 >これもそれほど難しくはないでしょう。 それで、この部分に何もコメントがありませんが、実際なさりたいことはなんでしょう? 質問: 1. 101件目が出た時点で、それまでの記録ファイルの内容はそっくり別の古いデータ記 録用ファイルに保存し、通常の記録ファイルには101件目の1件だけでいいかの? 2. 次の100件に到達した時はどうするのか? つまり100件ずつまとめたいのかということです。 3. No2がYesの場合、ファイル名に規則は必要なのか? ファイルは「書き込み」でオープンすればなければ自動的に作られますので、質問は 『ファイル名』の自動生成のように思いましたが、正確なことは判断できませんので 補足をお願いします。
その他の回答 (2)
- Marionette
- ベストアンサー率56% (42/74)
ちょっとだけ訂正: 100を古いデータにアペンドモードで書き込む。 ↓ もし添え字の最大値が100だったら、100を古いデータにアペンドモードで書き込む。
- Marionette
- ベストアンサー率56% (42/74)
可能です。 新規に追加する時の一番簡単な方法は、記録件数100件を例にとると、 記録100件分を配列に読み込む(普通にやれば添え字0~99になります)。 1~100に移す(たいてい専用の命令があります)。 0に新規分を代入。 0~99を書き戻す。 100を古いデータにアペンドモードで書き込む。 別ファイルを100件ずつとか、年号別にまとめたいという場合はバックアップの取り方に工夫が必要になりますが、これもそれほど難しくはないでしょう。 上記は新しいものが添え字が若い方にある時の一例です。 ソースは勘弁してください。有名どころを探せばありそうですが。
お礼
回答ありがとうございます。 せっかく回答を頂きましたが、私の説明が悪かったのか知りたいことと少し違うようです。 「100を古いデータにアペンドモードで書き込む。」とありましたが、知りたいのは100がでてきた時に、古いデータ記録用ファイルを自動で作成するというところです。ファイルを作成できれば、そのファイルを呼び出してアペンドモードで0~99を記録し、通常使う記録ファイルに新規分を書き込めは良いと思いますので。 お分かりでしたら教えて下さい。
お礼
度々回答ありがとうございます。 【ファイルは「書き込み」でオープンすればなければ自動的に作られます】という部分を知りたかったです。 早速やってみます。 それと質問についてですが、1について私が間違っておりました。#1でご提示されたことでOKでした。申し訳ありません。大変恐縮ですが、うまくいかなかったらもう一度お知恵を拝借させて頂きたいと思いますので、締め切るまでもう少しお待ち下さい。