[VW]Reading Large Files
Brett Taylor
btaylor at quiknet.com
Thu Dec 3 20:36:43 UTC 1998
I have encountered a limitation in VW 3.0 that I need to find a work around
for. I am trying to parse large files that are in the 1.5GB range. I
receive a walkback when sending the message #atEnd to aFileStream after a
certain position in the file has been reached. The failure actually occurs
in the following primitive method
"IOAccessor>>primReadInto: buffer startingAt: index for: count". This
occurs when the parameter "index" becomes a LargePositiveInteger (The number
is 536870912 or SmallInteger class>>maxVal + 1). This only allows me to
read the first half GB of the file.
I have also experimented in Squeak which has a limit of 1073741823 bytes
(also SmallInteger class>>maxVal + 1).
VSE under NT uses an OS call which limit is based on the page size of the
buffer so it has no problem with very large files (offsetIndex :=
filePosition // bufferSize).
I mention these other two Smalltalks just as a side note, but I am only
interested in a solution for VW 3.0 under NT at this time. Does anyone have
a answer?
Brett Taylor
btaylor at quiknet.com
More information about the Squeak-dev
mailing list
|