Jump to content
Excelsior Forums
Sign in to follow this  
stroy

Problem writing program using large data files under Windows XP

Recommended Posts

I have been trying for some time to write a program to process databases contained in structured ASCII text files.  The program (1) opens a standard Windows dialog box for the user to select a input file; (2) reads the input ASCII text file and generates an in-memory index; (3) uses the index to process the information various ways, with a dialog box showing the progress of the processing; (4) opens a standard Windows dialog box for the user to select a file (new or existing) into which to write ASCII file reports based on the processed index.  The program behaves exactly the same regardless of whether written in XDS Modula-2 or XDS Oberon, both under Windows XP.  I.e. it works fine, exactly as described above, for small data files, e.g. about 30 or 40 kByte.  For a large file, e.g. about 3 MByte, the program displays the input dialog box OK, the display of the in-process dialog box is erratic, and the call to the standard Windows dialog box to select an output file fails, with an error message instead.  Only the size of the input file, and the corresponding size of the in-memory index, is different.  I went from Modula-2 to Oberon to take advantage of memory garbage collection, but this does not seem to make ay difference.  I would appreciate any suggestion or advice on what to try next. 

Share this post


Link to post
Share on other sites

the display of the in-process dialog box is erratic

Of course you set all run-time checks TRUE, I guess (See 5.1 of the User's Guide).

If I were you, I would dump all data having something to do with 'in-process dialog box,' before and after calling the dialog box. If you find some unexpected values, find out when it was overwritten.

Another way is reducing the program to a minimal one, e.g. one that just write what is read, without any change, and one that write out the data after only one step processed, etc. Perhaps making and inspecting a command-line version first will be a good idea.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×