• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ファイル名が日付のファイルの存在を確認する方法)

ファイル名が日付のファイルの存在を確認する方法

このQ&Aのポイント
  • VB6でファイル名が日付の場合に、ファイルの存在を確認する方法がわかりません。
  • ログ作成時にファイル名を日付で作成し、2行書き込みたいが、同じ日付のファイルが存在する場合は1行だけを書き込みたい。
  • ファイル名が日付で流動的なので、確認方法がわかりません。現在のコードでは毎回2行書き込んでしまいます。

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

  • ベストアンサー
  • uruz
  • ベストアンサー率49% (417/840)
回答No.3

1) ファイル名が "C:\Log\" + Format(Date, "yyyy年mm月dd日") + ".txt" なのだから Dir()関数で存在をテェックする時も Dir("C:\Log\" + Format(Date, "yyyy年mm月dd日") + ".txt",vbNormal) でないとテェックできません。 2) ファイルをOpen後にDir()関数でテェックしていますがOpenした時点でファイルは作成されますのでかならず「有り」になってしまいます。したがってOpen前にテェックしなければなりません。 Dim FileName As String Dim FileFlag As Boolean -省略- FileName="C:\Log\" + Format(Date, "yyyy年mm月dd日") + ".txt" FileFlag=iif(Dir(FileName,vbNormal<>"",True,False) -省略- Open FileName For Append As #fileNo  if fileFlag=False Then   Print #fileNo, "設定日時,対象番号,設定値"  end if  Print #fileNo, Format(Now, "hh:mm:ss") + "," + Format(IDNumber) + "," + Format(check, "000000") Close #fileNo 'ファイルを閉じる 参考: 文字列の連結には「+」ではなく「&」を使用する方が望ましいです。 "C:\Log\" & Format(Date, "yyyy年mm月dd日") & ".txt"

ichyojp
質問者

お礼

ありがとうございます! Dir("C:\Log\" + Format(Date, "yyyy年mm月dd日") + ".txt",vbNormal) で認識するんですね! ファイルオープン前にチェックするのは頭にありませんでした。 VB環境が今日はないので、月曜朝確認してみます。 文字列の連結には「+」ではなく「&」が望ましいのは何ででしょうか? よりよいプログラムにするために知りたいです!

その他の回答 (2)

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

Open "C:\Log\" + Format(Date, "yyyy年mm月dd日") + ".txt"でこの名前で開くのに >If Dir(Date.txt) = "" Then でチェックできるのかな。 Dir (1)関数の()内は文字列で在るべきでしょう。 (2)またフルパスで在るべきでしょう (3)存在しないときは、空白が返る(ヌルストリング) この点に違反してませんか。 >C:\Log\" + Format(Date, "yyyy年mm月dd日") + ".txt"んおような名前になるべきなのでは? ーーー ファイルの存在を調べるのに FSOで.FileExistsというのも在ります。 興味があれば、Googleででも「FSO .FileExists」で照会のこと。

ichyojp
質問者

お礼

ありがとうございます! C:\Log\" + Format(Date, "yyyy年mm月dd日") + ".txt"で明日やってみます。 FileExistsも調べてやってみます。

  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.1

DATE.txtはどこで宣言してどこで値を設定してますか?見あたらないようですが。 DATEは予約語じゃないですかね。 FileSystemObjectを利用したほうが楽だと思います。 キーワード「filesystemobject vb6」でgoogle検索してみてください。 先頭に出てくるページにサンプルたくさんありますよ。 ファイル、ディレクトリの存在確認のサンプルもあり。

ichyojp
質問者

お礼

ありがとうございます。 (Date, "yyyy年mm月dd日") + ".txt"をDATE.txtと勝手に置き換えました。。。 FileSystemObjectを調べて試してみます!

関連するQ&A