- 締切済み
VB ログファイルからデータを時間毎に取得したい
VBでログファイルからデータを1行ずつ読み取り、 1時間毎と1秒毎の件数を取得したいです。 ログファイルは下記のように数千行のデータが存在します。 1 | 20140306 07:12:34 , TEST_A , AAA , 001 2 | 20140306 07:12:34 , TEST_A , BBB , 001 3 | 20140306 07:15:01 , TEST_A , BBB , 001 4 | 20140306 08:12:34 , TEST_B , CCC , 002 5 | 20140306 08:20:30 , TEST_A , CCC , 002 6 | 20140306 08:20:30 , TEST_A , CCC , 002 7 | 20140306 08:20:30 , TEST_A , CCC , 002 8 | 20140306 09:12:33 , TEST_A , AAA , 003 9 | 20140306 10:15:47 , TEST_A , BBB , 004 10 | 20140306 10:15:47 , TEST_B , BBB , 004 ・ ・ ・ 条件は、データに「TEST_A」と言う文字列が含まれている事です。 この場合、まず1時間毎の件数を取得して 指定のセルに表示させます。 7:00 | 3 8:00 | 3 9:00 | 1 10:00| 1 そして、その時間毎の秒間最大件数を取得して 指定のセルの表示させたいです。 7:00 | 2 8:00 | 3 9:00 | 1 10:00| 1 何卒、よろしくお願いいたします。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- mitarashi
- ベストアンサー率59% (574/965)
ご自分で取り組んだ努力のあとを見せていただかないと、回答が付きにくいですね。 Accessで、テキストファイルにリンクするか、インポートしてクエリを作成すれば、10分もかからずに実現できると思います。 (クエリのデザインビューで出来ますというか、当方それしか出来ない) ADOなりDAOを用いればVBAでも可能ですが、 >時間毎の秒間最大件数 の方はクエリが2段階になりますので、VBAでやる場合には一旦MDBなりに変換しないと難しいと思います。 (テーブルの代わりに第一段階のクエリの結果をテキストファイルに書き出して、それを第二段階のクエリで処理する方法も考えられますが) 下記の様な式で時間を取り出して、グループ化してみました。日内のデータを前提に、年月日は気にしていません。 式1: Format(Hour(TimeValue(Mid([フィールド1],10,8)))/24,"時刻 (S)") 下記でも十分ですね。 式1: Format(Val(Mid([フィールド1],10,2))/24,"時刻 (S)") Accessが使える環境にあり、ご興味があればお知らせ下さい。