Flushing a File

  • Thread starter Thread starter Michael Bildner
  • Start date Start date
M

Michael Bildner

Hello,

I was wondering if there was a way to flush output to a
file. I currently have a macro that takes a few hours to
run (lots of data processing) and it prints status messages
to a log file. However, the messages never appear until
the file is closed.

I currently print to a log file as follows:

Dim LogFile as Integer
LogFile = FreeFile
Open "Filename" For Append As #LogFile
Print #LogFile, "Messages ..."
....
Close #LogFile

Is there a command (such as Flush #LogFile) that will flush
the stream? If not, is there another way to write messages
to a file that can be read real-time ?

Thanks for the help.

Michael Bildner
 
Michael,

My experience is that the text file should update quickly after the command
executes. I ran this macro to test when there is computation going on:

Public Const FileDir As String = "C:\Documents and
Settings\shockley\Desktop\"
Sub Tester()
sFile = FileDir & "sTest.txt"
Open sFile For Append As #1
Print #1, "This is a test"
Close #1
Do
x = x + 1
Loop
End Sub
and it updates fine, so I don't know what your problem might be.

Another way to write to files is using the Scripting.FileSystemObject which,
I believe, acts synchronously rather than asynchronously like the Print
command--it's worth a try. Here's a link to the MSDN webpage where you can
learn about the fso objects:

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/script56/ht
ml/jsorifilesystemobjectmethods.asp

See "OpenTextFile Method"

HTH,
Shockley
 
Looks like you may have to open, write and close with each write. You might
use Application.Statusbar = "Message.." as an alternative.
 
Back
Top