Re: EOF?

2000-09-18 Thread Kevin Miller

On 18/9/00 4:45 pm, James Parker [EMAIL PROTECTED] wrote:

 I'm reading a binary file a character at a time and looking for the
 end-of-file marker so I know when to stop reading but the read terminates
 before the entire file is read.  There seems to be an eof marker in the
 file that is not at the end of the file.  CharToNum(EOF) returns a 4
 which could appear at places other than the end of the file, right?
 
 Is the following correct?
 
 repeat forever
 read from file sourcefile for 1 character
 if the result is "eof" then exit repeat
 put it into var1
 end repeat

I'm not quite sure why you want to do this, why not:

read from file tSourceFile until eof

If you really do want to read char by char for some reason, you need to
alter line 3 above to be:

if it is eof then exit repeat

Eof is a constant so can't be put in quotes.

Note that reading and writing to files is (except in a few special cases)
generally easiest done with the URL commands.  E.g.:

put url ("binfile:"tSourceFile) into tVariable

Regards,

Kevin

 Thanks,
 Jim Parker

Kevin Miller [EMAIL PROTECTED] http://www.runrev.com/
Runtime Revolution Limited (formerly Cross Worlds Computing).
Tel: +44 (0)131 672 2909.  Fax: +44 (0)1639 830 707.


Archives: http://www.mail-archive.com/metacard%40lists.best.com/
Info: http://www.xworlds.com/metacard/mailinglist.htm
Please send bug reports to [EMAIL PROTECTED], not this list.




Re: EOF?

2000-09-18 Thread James Parker

On 18/9/00 4:45 pm, James Parker [EMAIL PROTECTED] wrote:

 I'm reading a binary file a character at a time and looking for the
 end-of-file marker so I know when to stop reading but the read terminates
 before the entire file is read.  There seems to be an eof marker in the
 file that is not at the end of the file.  CharToNum(EOF) returns a 4
 which could appear at places other than the end of the file, right?
 
 Is the following correct?
 
 repeat forever
 read from file sourcefile for 1 character
 if the result is "eof" then exit repeat
 put it into var1
 end repeat

I'm not quite sure why you want to do this, why not:

read from file tSourceFile until eof


Thanks for your prompt reply, Kevin.

This is how I started reading files but discovered that when I read large 
files this way it hangs the MetaCard application.


If you really do want to read char by char for some reason, you need to
alter line 3 above to be:

if it is eof then exit repeat

Eof is a constant so can't be put in quotes.


The reason I did it this way is that the MetaCard documentation for 
result says 'Returns a string describing the status of the last find, go, 
open, send, or file operation command.' and for read it says that 'The 
result will be set to the string eof when an end-of-file was encountered 
during the read, or to an error message if some other error occured.  An 
empty result indicates a successful read.'


Note that reading and writing to files is (except in a few special cases)
generally easiest done with the URL commands.  E.g.:

put url ("binfile:"tSourceFile) into tVariable

Let me give this a try and see what happens.

Regards,

Kevin

 Thanks,
 Jim Parker

Kevin Miller [EMAIL PROTECTED] http://www.runrev.com/
Runtime Revolution Limited (formerly Cross Worlds Computing).
Tel: +44 (0)131 672 2909.  Fax: +44 (0)1639 830 707.


Archives: http://www.mail-archive.com/metacard%40lists.best.com/
Info: http://www.xworlds.com/metacard/mailinglist.htm
Please send bug reports to [EMAIL PROTECTED], not this list.

Archives: http://www.mail-archive.com/metacard%40lists.best.com/
Info: http://www.xworlds.com/metacard/mailinglist.htm
Please send bug reports to [EMAIL PROTECTED], not this list.




Re: EOF?

2000-09-18 Thread Scott Raney

On Mon, 18 Sep 2000, James Parker wrote:

 On 18/9/00 4:45 pm, James Parker [EMAIL PROTECTED] wrote:
 
  I'm reading a binary file a character at a time and looking for the
  end-of-file marker so I know when to stop reading but the read terminates
  before the entire file is read.  There seems to be an eof marker in the
  file that is not at the end of the file.  CharToNum(EOF) returns a 4
  which could appear at places other than the end of the file, right?
  
  Is the following correct?
  
  repeat forever
  read from file sourcefile for 1 character
  if the result is "eof" then exit repeat
  put it into var1
  end repeat
 
 I'm not quite sure why you want to do this, why not:
 
 read from file tSourceFile until eof
 
 
 Thanks for your prompt reply, Kevin.
 
 This is how I started reading files but discovered that when I read large 
 files this way it hangs the MetaCard application.

How large were the files, and on what platform?  You should be able to
read just about anything on a Win32 or UNIX systems, but reading files
larger than a few MB on a Mac is probably not a good idea unless you
have a large amount of RAM.

 If you really do want to read char by char for some reason, you need to
 alter line 3 above to be:
 
 if it is eof then exit repeat
 
 Eof is a constant so can't be put in quotes.
 
 The reason I did it this way is that the MetaCard documentation for 
 result says 'Returns a string describing the status of the last find, go, 
 open, send, or file operation command.' and for read it says that 'The 
 result will be set to the string eof when an end-of-file was encountered 
 during the read, or to an error message if some other error occured.  An 
 empty result indicates a successful read.'

You did the right thing.  When you don't want to put EOF in quotes is
when you're passing it to the read command (e.g., "read from file x
until eof").

 Note that reading and writing to files is (except in a few special cases)
 generally easiest done with the URL commands.  E.g.:
 
 put url ("binfile:"tSourceFile) into tVariable
 
 Let me give this a try and see what happens.

This is functionally equivalent to "read until eof", it just saves a
couple of lines of script for opening and closing the file.  Same
restrictions apply to the hardware/OS, though: You should only do this
if you're sure that there's enough virtual memory available on the
target system.
  Regards,
Scott

 Regards,
 
 Kevin
 
  Thanks,
  Jim Parker
 
 Kevin Miller [EMAIL PROTECTED] http://www.runrev.com/
 Runtime Revolution Limited (formerly Cross Worlds Computing).
 Tel: +44 (0)131 672 2909.  Fax: +44 (0)1639 830 707.
 
 
 Archives: http://www.mail-archive.com/metacard%40lists.best.com/
 Info: http://www.xworlds.com/metacard/mailinglist.htm
 Please send bug reports to [EMAIL PROTECTED], not this list.
 
 Archives: http://www.mail-archive.com/metacard%40lists.best.com/
 Info: http://www.xworlds.com/metacard/mailinglist.htm
 Please send bug reports to [EMAIL PROTECTED], not this list.
 


Scott Raney  [EMAIL PROTECTED]  http://www.metacard.com
MetaCard: You know, there's an easier way to do that...


Archives: http://www.mail-archive.com/metacard%40lists.best.com/
Info: http://www.xworlds.com/metacard/mailinglist.htm
Please send bug reports to [EMAIL PROTECTED], not this list.




Re: EOF?

2000-09-18 Thread LiangTyan Fui

On 9/19/00 2:51 AM, Scott Raney wrote:

 On Mon, 18 Sep 2000, James Parker wrote:
 
 On 18/9/00 4:45 pm, James Parker [EMAIL PROTECTED] wrote:
 
 I'm reading a binary file a character at a time and looking for the
 end-of-file marker so I know when to stop reading but the read terminates
 before the entire file is read.  There seems to be an eof marker in the
 file that is not at the end of the file.  CharToNum(EOF) returns a 4
 which could appear at places other than the end of the file, right?
 
 Is the following correct?
 
 repeat forever
 read from file sourcefile for 1 character
 if the result is "eof" then exit repeat
 put it into var1
 end repeat
 
 I'm not quite sure why you want to do this, why not:
 
 read from file tSourceFile until eof
 
 
 Thanks for your prompt reply, Kevin.
 
 This is how I started reading files but discovered that when I read large
 files this way it hangs the MetaCard application.
 
 How large were the files, and on what platform?  You should be able to
 read just about anything on a Win32 or UNIX systems, but reading files
 larger than a few MB on a Mac is probably not a good idea unless you
 have a large amount of RAM.

Is this applicable to all MetaCard disk I/O commands on Mac, or just
effecting:
  put url "binfile:thefile.txt"
where it really reads the entire file into RAM?

 If you really do want to read char by char for some reason, you need to
 alter line 3 above to be:
 
 if it is eof then exit repeat
 
 Eof is a constant so can't be put in quotes.
 
 The reason I did it this way is that the MetaCard documentation for
 result says 'Returns a string describing the status of the last find, go,
 open, send, or file operation command.' and for read it says that 'The
 result will be set to the string eof when an end-of-file was encountered
 during the read, or to an error message if some other error occured.  An
 empty result indicates a successful read.'
 
 You did the right thing.  When you don't want to put EOF in quotes is
 when you're passing it to the read command (e.g., "read from file x
 until eof").
 
 Note that reading and writing to files is (except in a few special cases)
 generally easiest done with the URL commands.  E.g.:
 
 put url ("binfile:"tSourceFile) into tVariable
 
 Let me give this a try and see what happens.
 
 This is functionally equivalent to "read until eof", it just saves a
 couple of lines of script for opening and closing the file.  Same

I must say "put url" has been my favourite command dealing with files.
However, I am planning to use the more traditional "open" and "seek" command
to deal with large files. My only problem is how find out the current
reading/writing position of the file.

Thanks.
LiangTyan Fui

 restrictions apply to the hardware/OS, though: You should only do this
 if you're sure that there's enough virtual memory available on the
 target system.
 Regards,
 Scott
 
 Regards,
 
 Kevin
 
 Thanks,
 Jim Parker
 
 Kevin Miller [EMAIL PROTECTED] http://www.runrev.com/
 Runtime Revolution Limited (formerly Cross Worlds Computing).
 Tel: +44 (0)131 672 2909.  Fax: +44 (0)1639 830 707.
 
 
 Archives: http://www.mail-archive.com/metacard%40lists.best.com/
 Info: http://www.xworlds.com/metacard/mailinglist.htm
 Please send bug reports to [EMAIL PROTECTED], not this list.
 
 Archives: http://www.mail-archive.com/metacard%40lists.best.com/
 Info: http://www.xworlds.com/metacard/mailinglist.htm
 Please send bug reports to [EMAIL PROTECTED], not this list.
 
 
 
 Scott Raney  [EMAIL PROTECTED]  http://www.metacard.com
 MetaCard: You know, there's an easier way to do that...
 
 
 Archives: http://www.mail-archive.com/metacard%40lists.best.com/
 Info: http://www.xworlds.com/metacard/mailinglist.htm
 Please send bug reports to [EMAIL PROTECTED], not this list.
 


Archives: http://www.mail-archive.com/metacard%40lists.best.com/
Info: http://www.xworlds.com/metacard/mailinglist.htm
Please send bug reports to [EMAIL PROTECTED], not this list.




Re: EOF?

2000-09-18 Thread Kevin Miller

On 19/9/00 2:42 am, LiangTyan Fui [EMAIL PROTECTED] wrote:

 Is this applicable to all MetaCard disk I/O commands on Mac, or just
 effecting:
 put url "binfile:thefile.txt"
 where it really reads the entire file into RAM?

Only the URL commands.

 This is functionally equivalent to "read until eof", it just saves a
 couple of lines of script for opening and closing the file.  Same
 
 I must say "put url" has been my favourite command dealing with files.
 However, I am planning to use the more traditional "open" and "seek" command
 to deal with large files.

Right - that is still usually the best way to go for large files.

Regards,

Kevin

 My only problem is how find out the current
 reading/writing position of the file.
 
 Thanks.
 LiangTyan Fui

Kevin Miller [EMAIL PROTECTED] http://www.runrev.com/
Runtime Revolution Limited (formerly Cross Worlds Computing).
Tel: +44 (0)131 672 2909.  Fax: +44 (0)1639 830 707.


Archives: http://www.mail-archive.com/metacard%40lists.best.com/
Info: http://www.xworlds.com/metacard/mailinglist.htm
Please send bug reports to [EMAIL PROTECTED], not this list.




Re: EOF?

2000-09-18 Thread Scott Raney

On Tue, 19 Sep 2000, LiangTyan Fui wrote:

  How large were the files, and on what platform?  You should be able to
  read just about anything on a Win32 or UNIX systems, but reading files
  larger than a few MB on a Mac is probably not a good idea unless you
  have a large amount of RAM.
 
 Is this applicable to all MetaCard disk I/O commands on Mac, or just
 effecting:
   put url "binfile:thefile.txt"
 where it really reads the entire file into RAM?

That, and "read ... until eof" both read the whole file into RAM,
which means you need to have enough.

  This is functionally equivalent to "read until eof", it just saves a
  couple of lines of script for opening and closing the file.  Same
 
 I must say "put url" has been my favourite command dealing with files.
 However, I am planning to use the more traditional "open" and "seek" command
 to deal with large files. My only problem is how find out the current
 reading/writing position of the file.

Yeah, currently you have to keep track of all your reads and seeks
because there is no "tell()" function that returns the current file
pointer.
  Scott

 Thanks.
 LiangTyan Fui


Scott Raney  [EMAIL PROTECTED]  http://www.metacard.com
MetaCard: You know, there's an easier way to do that...


Archives: http://www.mail-archive.com/metacard%40lists.best.com/
Info: http://www.xworlds.com/metacard/mailinglist.htm
Please send bug reports to [EMAIL PROTECTED], not this list.