[BLACKBOX] File write error with Windows7

From: [at]} <Rainer>
Date: Wed, 29 May 2013 05:29:04 +0200


Hi all,
I'm on vacation during this week, so I will investigate this problem in June further on.
Thanks a lot to all who contributed to a solution up to now :-)

Best regards,
Rainer


Am 27.05.2013 um 10:46 schrieb Treutwein Bernhard:


        
        Hi,
         
        as far as I remember, I encountered similar behavior occasionally.
         
        I was able to provocate it, by opening the same file as read only
        with another application.
         
        Are there any processes running in the background of Windows 7?
        E.g. some which are indexing the contents of files for quick
        search or anything like that?
         
        Regards
        --
          Bernhard
         
        From: BlackBox [mailto:BLACKBOX{([at]})nowhere.xy
        Sent: Thursday, May 23, 2013 5:35 PM
        To: BLACKBOX{([at]})nowhere.xy
        Subject: [BLACKBOX] File write error with Windows7
         
        Hi all,
        I have a strange effect when saving a modified source file:
        An alert box titled “File Error” shows up containing the message
         
        <file> could not be replaced because it is in use
         
        When I press the button in the box to repeat the action, the file is saved without any problem.
        This effect never showed up on Windows XP systems but happens many times on Windows7.
         
        It is annoying when editing source files but is actually a BIG problem to me because in my current application (Windows XP up to now; one run taking several hours) I write some status files periodically. On Windows7 this effect would cause my application to stop several times every minute and wait for somebody to click a button.
         
        It does not show up when the file to be saved contains just a few dozens of lines.
        It does not show up too when I write an empty file but showes up when I have appended a line to an existing file and save the file.
         
         
        This is a sketch of my code causing this problem:
         
                        PROCEDURE WriteToFile (VAR path, name, string: ARRAY OF CHAR);
(* file must exist and must be a text file *)
                                        VAR
                                                        formatter: TextMappers.Formatter;
                                                        locator: Files.Locator;
                                                        model: TextModels.Model;
                                                        view: Views.View;
                        BEGIN
                                        locator := Files.dir.This (path);
                                        view := Views.OldView (locator, name);
(* omitted code for checking "locator.res = 0" and "view IS TextViews.View" *)
         
                                        model := view (TextViews.View).ThisModel (); (* get the model of the view *)
                                        formatter.ConnectTo (model); (* connect a formatter to the text *)
                                        formatter.SetPos (model.Length ()); (* set position to end of text *)
         
                                        formatter.WriteString (string)
                                        formatter.WriteLn;
                                        Views.RegisterView (view, locator, name)
                        END WriteToFile;
         
         
         
        Writing an empty file works without any problems:
         
                        PROCEDURE StatusFileWrite (VAR path, name: ARRAY OF CHAR);
                                        VAR
                                                        formatter: TextMappers.Formatter;
                                                        locator: Files.Locator;
                                                        model: TextModels.Model;
                                                        view: TextViews.View;
                        BEGIN
                                        locator := Files.dir.This (path);
(* omitted code for checking "locator.res # 0" *)
         
                                        model := TextModels.dir.New (); (* create a new, empty text object *)
                                        view := TextViews.dir.New (model); (* create a new text view for model *)
                                        formatter.ConnectTo (model); (* connect a formatter to the text *)
                                        formatter.SetPos (0); (* set write position to beginning of file *)
         
                                        WriteFile (formatter); (* now write file contents *)
                                        Views.RegisterView (view, locator, name);
                        END StatusFileWrite;
         
         
         
        Does anybody have an idea how to solve this problem ?
        Thanks in advance and best regards,
        Rainer
         
         
         

        ---- To unsubscribe, send a message with body "SIGNOFF BLACKBOX" to LISTSERV{([at]})nowhere.xy

        ---- To unsubscribe, send a message with body "SIGNOFF BLACKBOX" to LISTSERV{([at]})nowhere.xy


---- To unsubscribe, send a message with body "SIGNOFF BLACKBOX" to LISTSERV{([at]})nowhere.xy
Received on Wed May 29 2013 - 05:29:04 UTC

This archive was generated by hypermail 2.3.0 : Thu Sep 26 2013 - 06:29:53 UTC