readline - Maple Help
For the best experience, we recommend viewing online help using Google Chrome or Microsoft Edge.

Online Help

All Products    Maple    MapleSim


readline

reads one newline-terminated line from a file or pipe

 

Calling Sequence

Parameters

Description

Thread Safety

Examples

Calling Sequence

readline()

readline(file)

Parameters

file

-

file descriptor or file name

Description

• 

The readline function attempts to read the next line from the specified file.

• 

The readline function returns a string consisting of the line read from the file. The newline character at the end of the line is removed before returning the string.

• 

If there are no more lines left to read, readline returns 0 instead of a string to indicate that the end of the file has been reached. If the file was specified as a file name, it is automatically closed at this point.

• 

The call readline(default) reads a line from the current input stream. If readline(default) is typed at the top level, the next line typed will be read by readline instead of by the Maple parser. If readline is executed while file read is active, readline reads the next line of the file (the one following the call to readline).

• 

The call readline(terminal) reads a line from the top level input stream. If Maple is being run interactively, any call to readline(terminal) will read a line from the user, even if a file read is in effect. If Maple is being run in batch mode (for example, using < for command line redirection) then readline(terminal) reads from the batch input file, even if a file read is in effect, since there is no user.

• 

If a file name is given, and that file is not yet open, it is opened in READ mode with type TEXT.

• 

The call readline(-1) is similar to readline(default), except that the Maple input preprocessor is invoked. Lines beginning with "!" are executed as operating system commands and lines beginning with  "?" are translated as calls to the help function.  Also, the readline(-1) command reads from the next prompt, while the readline(default) command opens a dialog for input.

• 

For backwards compatibility, readline() is equivalent to readline(default).

Thread Safety

• 

The readline command is thread safe as of Maple 15.

• 

Parallel calls to file i/o commands on the same file descriptor will be serialized in an arbitrary order.  If you need the commands to execute in a particular order you must use Maple's synchronization tools to enforce this.  See Threads:-Mutex.

• 

For more information on thread safety, see index/threadsafe.

Examples

Get only the first and last lines of a file called "infile.text". NOTE: This example will only work if you have the "infile.text" file.

firstreadlineinfile.text

linereadlineinfile.text

whileline0dolastline;linereadlineinfile.textenddo

In the next example, the readline command is used to get input from the keyboard for a simple question: Guess a randomly generated integer between values 1 to 5.

GetNumber := proc()
   local number;
   randomize();
   number := rand( 1 .. 5 )();
   printf( "Guess a number between 1 and 5:\n>> " );
   while( parse( readline() ) <> number ) do
       printf( "Try again!\n>> " );
   end do:
  printf( "Correct! The number was %d.\n", number );
end proc:

GetNumber

See Also

file_types

fscanf

IO_errors

parse

readbytes

writeline