Flushing a File
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 |
Flushing a File
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/de...us/script56/ht ml/jsorifilesystemobjectmethods.asp See "OpenTextFile Method" HTH, Shockley "Michael Bildner" wrote in message ... 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 |
Flushing a File
Looks like you may have to open, write and close with each write. You might
use Application.Statusbar = "Message.." as an alternative. -- Jim Rech Excel MVP |
All times are GMT +1. The time now is 08:31 AM. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
ExcelBanter.com