Excalibur21 wrote:
Quote:
TL support assure me that 20k is a very short file. In fact I often use much larger items. |
You needed TL support to tell you that?
Seriously, it's not just about line count, it's about how wide the
lines are too.
Quote:
In D3 Windows the COPY Dos: followed by Count, DIM and Matparse is exceptionally easy and very quick |
There's a number of things I'd take issue with there.
1) Why copy data into hashed space only to open and read it, when you
can just open and read it from OS space? You've virtually doubled the
processing time for no reason, especially if your hashed files are
only 4k (default) and you need to go through the pain of frame
linkage.
2) Why DIM then matparse into a dynamic array when you can just read
an item into a dynamic array?
3) Maybe you meant MatRead, in which case you can skip the count and
related Dim and just do this:
DIM BLOCK()
MATREAD BLOCK FROM ...
The MatRead will automatically dimension the block array for you.
For reference, I've used %read on files that are tens of gigabytes in
size with hundreds of thousands of wide lines, blocking with small
buffers in a manner similar to what I described in my other post on
this topic. (Be sure to convert (CR)LF to @AM)
The only real way to work out the "best" method of processing files
like this is to try a few methods and see if the performance is
reasonable for your specific application. You might find that a
simple Read with a ForNext though attributes is fine. You will
certainly find that with large strings, FlashBASIC is MUCH better than
non-flashed code, maybe good enough to preclude anything but the most
simple approach.
T