Openステートメントについて教えてほしいのですが、
以下の2つのプログラムを実行すると、プログラムA
の方だと、"C:\aaa.txt"のタイムスタンプが更新され
ますが、プログラムBの方だと、タイムスタンプが変わ
りません。
なぜ、プログラムBの方はタイムスタンプが変わらない
のかが分かりません。
分かる方がいましたら、ご教授ください。
環境は、
コンパイラ Microsoft Visual Basic 6.0(SP3)
OS Windows2000 Professional(SP3)
です。
------プログラムA------
Dim lngFileNo As Long
Dim strWork As String
lngFileNo = FreeFile
Open "C:\aaa.txt" For Binary As lngFileNo
strWork = "aaa"
Put lngFileNo, , strWork
strWork = vbCrLf
Put lngFileNo, , strWork
strWork = "bbb"
Put lngFileNo, , strWork
strWork = vbCrLf
Put lngFileNo, , strWork
Close lngFileNo
----------------------
------プログラムB------
Dim lngFileNo As Long
Dim strWork As String
lngFileNo = FreeFile
Open "C:\aaa.txt" For Output As #lngFileNo
strWork = "aaa"
Print #lngFileNo, strWork
strWork = "bbb"
Print #lngFileNo, strWork
Close #lngFileNo
----------------------
試したのですが、どちらともタイムスタンプ変わりましたよ。
MSDNを見る限りでは、#付いてるんで自分は付けてます。
WinXP SP1
VB6.0 SP5
VBのヘルプでは
Open pathname For mode [Access access] [lock] As [#]filenumber [Len=reclength]
と、#は省略可能になってますね(知りませんでした)。
多分双方に違いはないと思います。
予想では昔のBASICのなごりで残してあるのだと思います。
ちなみに私も#をつけてます。
ツイート | ![]() |