It's important to note that the motion of HD heads is not under VFP's control, it's controlled by the OS. It's been a while since I looked at the mechanisms of file reading from a HD but from what I recall it's not very sophisticated. IIRC you can ask the OS to return the entire file, or (best-case scenario) you can ask it to return a portion of the file, of a given length, at a given offset from the start of the file.
One important question is whether, given an offset from the start of a file, the OS can determine which cluster represents the start of that range, and go directly there and perform I/O to return just the required data. Or, if it has to read the whole file up to the end of the desired range and then do the equivalent of a VFP SUBSTR(). I don't know the answer to this, which has a large bearing on this discussion.
I think a definitive answer to this question is going to need:
- in-depth knowledge of HD file I/O
- knowledge of how VFP I/O works with OS I/O calls for common operations (e.g. SELECT, GO, SEEK, etc.)
I'm assuming all of this discussion in turn, assumes there is no hardware disk cache and OS-level disk cache in place.
Regards. Al
"Violence is the last refuge of the incompetent." -- Isaac Asimov
"Never let your sense of morals prevent you from doing what is right." -- Isaac Asimov
Neither a despot, nor a doormat, be
Every app wants to be a database app when it grows up