Hello Human, You've run into memory fragmentation. I would sugest you to use NexusMM ($120) or FastMM (free). Sorry, I cannot remember the URLs. Google is your friend.
Regards, SZ ----- Original Message ----- From: "Human" <[EMAIL PROTECTED]> To: "Delphi-Talk Discussion List" <[email protected]> Sent: Friday, March 03, 2006 1:50 PM Subject: Strings in Delphi should be 2GB, right? > Strings in Delphi should be able to store 2GB, right? > I got an exception after 4MB. > > > > I have to create a report about 800-1000 files in a folder. > I've tried to write the report in a TRichEdit component but it was TO SLOW > because the refresh > after each line I added. BeginUpdate didn't help at all. Actually it has > no effect. > > So I decided to write it directly on the HDD as a HTML file. > I made a new form and a global variable (called Raport) where I store the > HTML: > > var Raport: string; > procedure TFrmHTML.AddLine(s: String); > begin > Raport:= Raport+ CRLF+ '<br>'+ s; > end; > > At the end of the program I discharge the content of that variable in a > file. > The problem is that after exactly 4MB it gives me an EOutOfMemory error. > It appears when I try to add more characters to that Raport variable. > The CPU window shows me that the exception was 'born' in the @StrSetLength > function which is not > documented in my Help file (Delphi 7). > After this the program quit the main loop (leaving few file not > processed). > > What it is strange it the fact that after the exception is raised and > closed, I continue to write > to that variable (the end of the HTML </body> </html>) and it accept > without rising the exception. > Finally the string is saved gracefully on the HDD. > > I have 768 BM of RAM in my computer. All the time AT LEAST 250MB are free > (I use CacheMan XP to > monitor my memory). > One hour ago the program worked ok, till the end (it processed all 822 > files). > > The memory requirements were: > After it finished: 37MB > Peak memory : 39MB > Virtual mem : 32MB > In my system the page file usage was 565MB (I had other huge applications > running). > > > Why it runs out of memory? It isn't supposed to use VM when it runs out of > real memory (which it > isn't my case anyway). > What will happen if I want to process more that 1000 files? > > > PS: I don't want to use a third party Report component. I've took a look > at few free and trial > components. > They where to expensive, or to slow, or much to complex (and in the same > time big in size). > I just want to write line of text with monospaced characters/font and some > letters should be > colored in red. That's all. > > > ...and the traveler died, stroked by the beauty of the landscape. > > THE MORNING OF THE MAGICIANS > Louis Pawels & Jacques Bergier > > __________________________________________________ > Do You Yahoo!? > Tired of spam? Yahoo! Mail has the best spam protection around > http://mail.yahoo.com > __________________________________________________ > Delphi-Talk mailing list -> [email protected] > http://www.elists.org/mailman/listinfo/delphi-talk __________________________________________________ Delphi-Talk mailing list -> [email protected] http://www.elists.org/mailman/listinfo/delphi-talk
