## 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. 

Reset(F); repeat Read(F,X,Ch); P (X) until Ch = '*' 

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: 

procedure SkipBlanks (v, IF: Text); var Done: Boolean; begin Done := False; 

