VB6でフォルダに毎日更新したファイルを読み込む方法

このQ&Aのポイント
  • VB6のプログラム内で、フォルダに毎日更新したファイルを読み込む方法について教えてください。ファイル名は「aaaa_20100720123456(年月日時分秒).txt」という形式で、時間の部分が毎日変動します。
  • VB6のプログラム内で、毎日更新されるファイルのファイル名を作成する方法について教えてください。ファイル名は「aaaa_20100720123456(年月日時分秒).txt」という形式で、時間の部分が毎日変動します。
  • VB6のプログラム内で、毎日更新されるファイルを読み込む方法について教えてください。ファイル名は「aaaa_20100720123456(年月日時分秒).txt」という形式で、時間の部分が毎日変動します。
回答を見る
  • ベストアンサー

Visual Basic 6.0について

Visual Basic 6.0について いまプログラムを組んでいるのですが、どうしても分からない点があるので質問させていただきます。 フォルダに毎日更新したときに追加される「aaaa_20100720123456(年月日時分秒).txt」というファイルがあるとします。(年月日時分秒の部分は更新した時間です。) このファイルをVB6のプログラム内でString型で定義した変数を=で結びたいのです。年月日の部分まではFormat(Now,yyyyMMdd)でいいのですが、時分秒の部分は毎日更新する時間が微妙に違うのでどう書けばいいかが分かりません。 分かりづらいと思いますが、どなたか教えて頂けますか?宜しくお願いします。 このような感じです。 Dim a as String a="aaaa_"+Format(Now,"yyyyMMdd")+(この部分が分かりません)+".txt"

質問者が選んだベストアンサー

  • ベストアンサー
  • mino1219
  • ベストアンサー率66% (2/3)
回答No.7

Dim strFileName As String strFileName = Dir("c:\Test\aaaa_" & Format(Now,"yyyymmdd") & "*.txt") Do While strFileName <> "" 'ここで、変数 strFileName  に格納されているファイル名を使って処理する。 strFileName = Dir() Loop 説明 : "*.txt" は、あなたが言っている変動する時分秒にあたるところです。 なんでもござれの指定でよいと思います。 因みに、文字列の連結は、+ ではなく & にしたほうが見た目がいいですよ。

regulus0725
質問者

お礼

分かりやすい回答ありがとうございました。 解決することが出来ました。

その他の回答 (6)

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.6

質問の意味が良くわからないが Sub test01() MsgBox Format(Now(), "yymmddhhmmss") End Sub で判ることではないですか。 上記の文字列fnがあって 100720XXXXXXを探すならiF left(fn,6)="100720" で聞けば良いのでは。

regulus0725
質問者

お礼

分かりづらい質問なのに回答をして頂き、ありがとうございました。 問題は解決することが出来ました。

  • rukuku
  • ベストアンサー率42% (401/933)
回答No.5

#1 rukukuです。 VB6のサンプルプログラムです。 3行目以外はEXCEL VBAと同じです。 Option Explicit Sub Main() Dim FolderPath, FileName, FileNames As String FolderPath = App.Path FileName = Dir(FolderPath & "\*.txt") If FileName = "" Then MsgBox "対象となるファイルがありません" End End If Do While FileName <> "" FileNames = StrConv(FileName, vbLowerCase) MsgBox FileName FileName = Dir() Loop End Sub

regulus0725
質問者

お礼

ANo.4と共にここでお礼をさせて頂きます。 丁寧な回答ありがとうございました。 Dirで解決しました。

  • rukuku
  • ベストアンサー率42% (401/933)
回答No.4

#1 rukukuです。 サンプルプログラムです。 ただし、VB6ではなく、Excel2000VBAです。(Excel2003、2007でも動作します) 自分のファイルがあるフォルダのtxtファイル名を順次、メッセージボックスに表示します。 VB6では「FolderPath = ThisWorkbook.Path」の部分が異なる以外は同じプログラムで動作します。 Option Explicit Sub FileList() Dim FolderPath, FileName, FileNames As String FolderPath = ThisWorkbook.Path FileName = Dir(FolderPath & "\*.txt") If FileName = "" Then MsgBox "対象となるファイルがありません" Exit Sub End If Do While FileName <> "" FileNames = StrConv(FileName, vbLowerCase) MsgBox FileName FileName = Dir() Loop End Sub

  • trajaa
  • ベストアンサー率22% (2662/11921)
回答No.3

読み返してみると、質問文は中途半端。 ファイル名を生成する処理をVBで作成していて、日付時刻をファイル名にする部分が分からないのか? それとも、既に日付時刻をファイル名にもつファイルが存在していて、そのファイルへのアクセス処理をVBで作成しているのか? どちらの意味なのかによって、助言する内容は全く異なる。

regulus0725
質問者

補足

すみません。 後者の方です。

  • trajaa
  • ベストアンサー率22% (2662/11921)
回答No.2

ん~。 私の勘違い? = Format(Now, "yyyymmddHHMMSS") じゃ駄目なのか? = Format(Now, "yyyymmddHHNNSS") てな話もあるそうだが。

regulus0725
質問者

補足

回答ありがとうございます。 文章が分かりづらかったですね。すみません このプログラムは更新したファイルの中のデータが何件あるかという確認のプログラムなので、更新した時間に実行する訳ではないのでダメなんですよ・・・

  • rukuku
  • ベストアンサー率42% (401/933)
回答No.1

こんばんは 「dir関数」があります。 「特定のフォルダ内の.txtファイルを順次操作する」というような場合に便利です。

regulus0725
質問者

お礼

早速の回答ありがとうございます。 「dir関数」ですか。ちょっと調べてみます。

関連するQ&A

  • ☆BAT:日時をTXTファイル名にして出力するには

    例えば作成したいテキストファイルが有るとします。 現行はBAT実行の都度、手作業でファイル名を「年月日時分秒」にリネームしています。 これを自動処理する妙案が有れば是非ご指導下さい。 宜しくお願いいたします。 echo %COMPUTERNAME%今日は良いお天気ですね > D:\yyyymmdd_hhmmss.txt 以上

  • Visual C++ 2008 Express Editionでファイル出力プログラムができない。

    今、Visual C++ 2008 Express Editionを使って、データをファイル出力保存するプログラムを作る練習をして、下のURL http://homepage3.nifty.com/ishidate/vcpp08_2/vcpp08_2.htm ここで紹介されている通りのプログラムを組んで見たのですが、コンパイルが完了して、デバッグしてみると、DOSプロンプトが立ち上がった時点で、”動作を停止しました。”という感じで起動ができませんでした。 // C880.cpp : メイン プロジェクト ファイルです。 #include "stdafx.h" using namespace System; using namespace System::IO; int main() { String^string1; StreamWriter^swriter1=gcnew StreamWriter("A:sample.txt"); string1=" 二乗 三乗 四乗 平方根"; swriter1->WriteLine(string1); string1="---------------------------------------"; swriter1->WriteLine(string1); for(int a=1;a<11;a++){ string1=String::Format("{0,2} {1,5} {2,5} {3,6} {4,7:F4}", a,a*a,a*a*a,a*a*a*a,Math::Sqrt(a)); swriter1->WriteLine(string1); } swriter1->Close(); //これを忘れてはいけない Console::Read(); return 0; } これは何が原因なのかご存じの方いらっしゃいますでしょうか。ぜひご教授ねがいます。

  • TEXTファイルを日付・時刻で保存。

    VB2005.NETを使用しています。 System.IO.File.Create("C:\test.txt") System.IO.File.OpenText("C:\test.txt") などがありますが、このtestの部分を日付・時刻で保存したいのですが、可能ですか? 日付をstringに変更して、"C:\" & yyyymmdd & ".txt"としてもだめなようです。 書籍・インターネットを調べても解りませんでした。 よろしくお願いします。

  • バッチ処理 特定ファイルを除く削除

    環境:XP pro SP3 「test.txt」を基本ファイルとして残しておき、 変数を使って「test20090401.txt」というように、 バッチ処理をした日付が名前に入るように毎日自動コピー を作成しまして、加えて、8日目以降 1週間前の ファイルを自動削除したいのですが、基本の「test.txt」 は残しておきたいのです。 以下の処理だと「test.txt」まで削除されてしまうのですが、 他フォルダへの移動退避以外に「test.txt」を残し、 1週間前のファイルを削除する方法をご教授頂きたく お願い致します。 set yyyymmdd=%date:~-10% set yyyymmdd=%yyyymmdd:/=% set LOG_COUNT_LIMIT=7 cd c:\temp copy test.txt test%yyyymmdd%.txt for /f "skip=%LOG_COUNT_LIMIT%" %%a in ('dir /b /o-n *.txt') do (del %%a)

  • コマンドプロンプトでのファイル操作について

    コマンドプロンプトでのファイル操作について、ご存知のかたどうか教えてください。 a.txt b.txtという2つのファイルがあるとします。 <a.txtの内容> 1111 2222 3333 <b.txtの内容> aaaa bbbb cccc 上記の2つのファイルを読み取りc.txtというファイルへ以下のように 出力したいのですが、コマンドプロンプト(batでも問題ありません) にてできるのでしょうか? <c.txtの内容> 1111,aaaa 2222,bbbb 3333,cccc ご教授のほど、宜しくお願いします。

  • ファイルの存在の確認をする方法

    こんにちは。 VB.netでプログラミングしているんですが、ファイル処理について質問があります。ファイルを保存する際に、よく「すでにファイルが存在します。上書きしますか?」と聞いてきますよね。これを実現するにはどんな方法があるでしょうか?ただし、コモンダイアログは使いません。FileOpen、FileCloseで実現したいのです。 以下のプログラムをどのように変えたらいいでしょうか?ご教授お願いいたします。 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click   FileOpen(1, Format(Now, "yyyyMMdd") & " .txt", OpenMode.Output)   PrintLine(1, "test")   FileClose(1) End Sub

  • 日付の入ったタイトルのファイルをマクロで取り込みたい

    お世話になっております。 したい事が二つありまして、 まず一つ目は毎日保存している「yyyymmdd_Balance」というタイトルのcsvファイルがあり、そこのファイル内の一部を別のエクセルファイルに貼り付けたいのです。 このファイルは他のデータより落としてきておりますので、yyyymmdd部分のみ毎日更新されます。また、当日の日付ではなく、ビジネスdayなので当日の日付ではありません。 そこで、日付け用にページをもうけ、 =IF(WEEKDAY(today)=2,TODAY()-3,TODAY()-1)をa_dateと定義し、 そのうえでマクロにて DM = Format(Range("a_date").Value, "yyyymmdd") Workbooks.Open Filename:="C:\Report\Data\DM&_Balance.csv" としたのですが、DMのところでエラーがでてしまいます。 別のファイルで同じようにしているのですが、それは正常にRunします。何が違っているのでしょうか? 2点目なのですが、今度はReportというファイルの中に毎日ビジネスdayの名前でページを追加していっています。 (10月31日に作業をおこなっているのであれば20081030という名前のページ) ここでも先程と同じように、このビジネスdayの名前のシートを選択し作業をおこなっていきたいのですが、これもどのようにマクロで記述すれば宜しいのでしょうか? どうぞ宜しくお願い致します。

  • awkを使って文字列処理の問題

    awkで以下のことをやりたいですが、 a.txtの中身は aaaa bbbb cccc の三つのレコードがあります。 b.txtの中身は 東京a 埼玉b 千葉c 東京d になってます。 ファイルa.txtのみっつのレコードのを読み込んできて、b.txtに対して検索して、東京 という文字列があれば、そのレコードは、aaaaに置き換えて、あるファイルに出力する ようなスクリプトを書きたいです。 どう書けば、いいですか?教えていただけませんか?

  • アクセスでコードのpgmを作成しています。

    アクセスでコードのpgmを作成しています。 下記の部分を教えてください。 Dim HIDUKE As String HIDUKE = Format(Now(), "yyyymmdd") MsgBox HIDUKE ←20100610と入っている DoCmd.TransferText acImportDelim, "important", "test", "C:\Documents and Settings\test\HIDUKE.csv" このHIDUKEの部分に20100610の入っている定義を読み込むにはどうしたらいいのでしょう? このままでは、当然HIDUKE.CSVが存在しないとだめですが、 実際は20100610.CSVを読み込みたいのです。 教えてください。

  • Shellでファイル名を抜き出して変更

    お疲れ様です。 いつもお世話になっています。 よろしくお願いします。 現在Shellで、下記の流れのプログラムを制作しています。 ------ 1.zipを一時ディレクトリに展開(unzip) 2.もとのzip名(aaaa-bbcccc-dddd-YYYYMMDD.zip)からXXXXX-bb-YYYYMMDDというフォルダを作成 3.一時ディレクトリのファイルをmv ------ ごく簡単なものだとは思うのですが、2.のフォルダを作成のところで悩んでいます。 cutコマンドが近い気がするのですが、これはファイルの中身を抜き出すコマンドのようで、うまく使えません。 フォルダ名の一部分を抜き出して、新しいフォルダ名としてつくるにはどうすればよいのでしょうか。 よろしくお願いします。

専門家に質問してみよう