134  Pascal User Manual  5. If Ch is a variable of type Cd:  or subrange of Char, then  Read (F, Ch)  assigns the chal Icier at the current position of  file F  or the value of Fi to  I.  followed by a Get (F), the  choice being implementation- dependent.  6.  If  a parameter v  is of tYll'  I  nteger  or a subrange of  Integer  then  Read  accel'ts  a  sequence  of characters  forming a signed integer witl  possible leading blanks. The  integer value denoted by this  I.~quence  is then assigned to v.  7. If a parameter v is of type:  1  l, Read accepts a sequence  of characters forming a signee number with possible leading  blanks.  The real  value deno  l~d  by  this  sequence is  then  assigned to v.  In scanning F  (skipping blank  ) to read numbers, Read may also  skip  end-of-line markers.  F  l~  left  positioned to  the  non-digit  character following the last digit  l  \)flstituting a number. To correctly  read consecutive numbers, separa e them by blanks or put them on  separate lines. Read accepts the longest sequence of digits, and if two  numbers are not separated,  Read  cannot distinguish them as  two  numbers (and neither can people!)  Examples:  Read and process a sequence of numbers where the last value is  immediately followed by an asterisk. Assume  F  to be a textfile, x and  Ch to be variables oftypes Intege  (or Real) and Char respectively.  Perhaps a more common situ Ition  is  when there is no way of  knowing how many data items arc to be read. and there is no special  symbol that terminates the list.  T.o convenient schemata are show  below. They make use of procedur .. ;  k  ipBlanks:  Reset(F);  repeat  Read(F,X,Ch);  P (X)  until Ch  =  '*'  procedure SkipBlanks (v,  IF:  Text);  var Done:  Boolean;  begin  Done  := False; 