fi=f.OpenAsBinaryFile
I find this way to be extremely faster, especially on very large files.
-Drew
On Feb 13, 2007, at 3:47 PM, Jeff Ayling wrote:
On 14/02/2007, at 10:31 AM, Jeff Ayling wrote:
On 13/02/2007, at 12:50 PM, Jeff Ayling wrote:
Hi all,
My app built with RB2007r1 on osx ppc and running on osx ppc
seems to hard crash from time to time without warning and without
a crash report.
I am trying to debug and I now have a window with the following
code which allows me to view all objects, their ids and number of
references:
Dim i, total as Integer
total=Runtime.ObjectCount
For i=0 to total-1
Listbox1.addrow Str(Runtime.ObjectID(i))
Listbox1.Cell(ListBox1.LastIndex,1)=Runtime.ObjectClass(i)
Listbox1.Cell(ListBox1.LastIndex,2)= Str(Runtime.ObjectRefs(i))
Next
EditField1.text= Str(Runtime.memoryUsed)
Is there any way of getting some more information about each
object? One object called "TextEncoding" has an increasing number
of references while the app is running - it's now up to 1800
references after 24 hours and growing. Is there anyway of
locating this object within my code? I have its object id which
gets added to the listbox - can that help me to locate the object
in my code?
Thanks
Jeff
Hi all,
Ok, I have found the reason for the TextEncoding Object rapidly
increasing number of references but I'm not sure if this is
normal, bad coding or if this is even a problem.
I created a new project with a timer containing the following code:
dim f as folderitem
dim fi as textinputstream
dim s as string
f=GetFolderItem("notes.txt")
fi=f.OpenAsTextFile
s=fi.ReadAll
fi.close
f=Nil
fi=Nil
So, every time the fi.ReadAll reads the file a new TextEncoding
reference is added to the stack. Using the code from my original
post, the Runtime.ObjectRefs for TextEncoding increases by 1 each
time the ReadAll is called. Pop it in a Timer with 1 millisecond
loop and this grows to over 20,000 references within a few seconds.
Is this ok? Is this a problem that there are sooo many references
to textencoding even after the object is no longer needed?
Thanks
Jeff
Or is this a better way to read a file:
dim f as folderitem
dim fi as BinaryStream
dim s as string
f=GetFolderItem("notes.txt")
fi=f.OpenAsBinaryFile
s=fi.Read(f.Length)
fi.close
This method does not create the increasing TextEncoding references.
Jeff
_______________________________________________
Unsubscribe or switch delivery mode:
<http://www.realsoftware.com/support/listmanager/>
Search the archives:
<http://support.realsoftware.com/listarchives/lists.html>
_______________________________________________
Unsubscribe or switch delivery mode:
<http://www.realsoftware.com/support/listmanager/>
Search the archives:
<http://support.realsoftware.com/listarchives/lists.html>