DOBON.NET DOBON.NETプログラミング掲示板過去ログ

ログファイル生成について

環境/言語:[VB6]
分類:[VB6以前]

時間変化によって生成されるデータを
Logとしてテキストファイルに出力して
ある一定間隔の時間で新たなファイルを作成し
新たに作成したファイルへ書き込みを行いたいのですが
ファイルを自動生成し、自動生成したファイル名でファイルをオープンして
データを書き込む部分がどう作ったらよいかわかりません。
わかる方がおりましたらご教授お願いします。
2004/11/27(Sat) 22:04:15 編集(投稿者)

■No7704に返信(masaさんの記事)
> 新たに作成したファイルへ書き込みを行いたいのですが
> ファイルを自動生成し、自動生成したファイル名でファイルをオープンして
> データを書き込む部分がどう作ったらよいかわかりません。

まず、ファイルが単一でないとすると、ユニークなファイル名にする必要がありますね。
この辺りは、どうするおつもりなのでしょうか?

#「LOG_20041218_120525.TXT」のように日付と時間を付け加えて、保存するのでしょうか?

ファイルの自動生成自体は、Output モードで Open すれば良いです。
データは Print で書き込めば良いですね。

Open と 書き込みについてはこちらが参考になるかと。
http://www.bcap.co.jp/hanafusa/VBHLP/txt01.htm



■追記

 ただ、それなりにエラー処理は必要ですよ。
 どこへ保存するにしても、そこまでのパスが有効かどうかを判定する必要があります。
返信遅れてすみません。
保存方法ですが、「LOG_20041218_120525.TXT」のように
日付と時間を付け加えて、保存したいと考えております。
この場合、開くファイルを指定するときに変数が使えるということでしょうか。
outputモードでopenすることでファイルを自動生成できることはわかりました。
後は、その動作を連続的にファイル名にタイムスタンプを付けて
行いたいのです。

参考としていただいたURLを拝見しました。
この例の場合は、新しいファイルを連続的に生成するものでしょうか。
Open "sample_01.csv" For Output As #intFileNo
この関数の"#intFileNo"の部分がいまひとつ意味がわかりません。

よろしくお願いします。
■No7783に返信(masaさんの記事)
> 保存方法ですが、「LOG_20041218_120525.TXT」のように
> 日付と時間を付け加えて、保存したいと考えております。

多分そうだろうと思いました。

> この場合、開くファイルを指定するときに変数が使えるということでしょうか。

開くファイルを指定するときの変数 == [フルパスのString型]

> outputモードでopenすることでファイルを自動生成できることはわかりました。
> 後は、その動作を連続的にファイル名にタイムスタンプを付けて行いたいのです。

日付と時間をどこから持ってくるのか決定しておりますか?

 ・ローカルのシステム日付と時間
 ・サーバのシステム日付と時間
 ・いわゆるインターネット日付

のどれかだと思いますが、どれを扱うにしろ、[フルパスのString型] の後に
これらを文字列として連結するだけですね。

> 参考としていただいたURLを拝見しました。
> この例の場合は、新しいファイルを連続的に生成するものでしょうか。

いや、これを応用してくださいという意味ですよ。
連続的に作成する部分はご自分で作成できるハズ。

> Open "sample_01.csv" For Output As #intFileNo
> この関数の"#intFileNo"の部分がいまひとつ意味がわかりません。

ファイル番号ですよ。
FreeFile() 関数で フリーなファイル番号を intFileNo (本来はlong?) に格納。
そのファイル番号で開いてるってことですね。
閉じる際も同様に、Close #intFileNo とファイル番号を指定する必要があります。

# 実は私も、VB6のファイル処理には、イマイチ馴染めないです・・・
2004/12/03(Fri) 10:55:37 編集(投稿者)

タイマーを使ってファイル作成のタイミングをつくりだして
そのときの時間取得をしてそのままファイル名とすることで
連続生成をすることができました。
ただ、タイムスタンプを取得したそのままでは、
特殊文字が入っている関係でファイルは作成されませんでしたが、
取得後にフォーマットを変更することでファイル作成に成功しました。
フォーマットの変更は、以下の文でできました。
Format$(wFileName2, "yyyy-mm-dd_hh-mm-ss")
実は、ここにたどり着くのに少し苦労しました。
これですべて解決しました。
どうもありがとうございました。
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板