Re: Q: FastBinaryFiles-package: how to detect EndOfFile?
- To: mathgroup at smc.vnet.net
- Subject: [mg25535] Re: Q: FastBinaryFiles-package: how to detect EndOfFile?
- From: tgayley at wolfram.com (Todd Gayley)
- Date: Sat, 7 Oct 2000 03:35:40 -0400 (EDT)
- Organization: Wolfram Research, Inc.
- References: <8r1a0u$i1j@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
On 29 Sep 2000 01:40:46 -0400, Claudius =?iso-8859-1?Q?Schn=F6rr?=
<schnoerr at mailzone.com> wrote:
>Hello,
>
>is it possible to test whether the LinkInputStream is at the EndOfFile
>before trying to read further with ReadListBinary?
>
>Or is there a way to get the LinkObject used in the package to test it by
>LinkReadyQ[ link ]?
Claudius,
When the LinkInputStream is at the end of the file, any further reads
will immediately return EndOfFile. Here is a function that uses that
fact to determine whether the stream is at EOF:
AtEndOfFileQ[s_LinkInputStream] :=
Module[{pos, result},
pos = StreamPosition[s];
result = ReadBinary[s, Byte] === EndOfFile;
SetStreamPosition[s, pos];
result
]
The LinkObject used by the package is returned from the
Install["binary"] line that you use to launch the program. This
LinkObject won't be of any use in determining anything about the state
of the LinkInputStream, though. LinkReadyQ will always return False.
--Todd
Todd Gayley
Wolfram Research