Get
From Free Pascal wiki
Jump to navigationJump to search
│ English (en) │
The procedure get retrieves a datum from a file of … and advances the reading cursor.
Although get is a standardized Pascal routine, in the FPC get is only available in an ISO-compliant mode, such as {$mode ISO}.
behavior
requirements
Before get is executed, two requirements must be met:
- The file must be in inspection mode.
- The file’s “cursor” may not be past
EOF.
A run-time error occurs if either condition is not satisfied.
effect
Get
- advances the cursor by one record
- makes the new current record accessible via the file’s buffer variable.
To put this into relation:
read(f, x)is equivalent tox := f^; get(f).readLn(f)is equivalent towhile not EOLn(f) do get(f); get(f). The latterget(f)actually consumes the newline marker.reset(f)is semantically equivalent toseekRead(f, pred(firstRecord)); get(f)wherefirstRecordis the index of the first record.
application
Get is especially used to
- read the file buffer variable multiple times at various locations (e. g. subroutines),
- eliminate the need for an extra buffer variable.
program echo(input, output); begin while not EOF(input) do begin output^ := input^; get(input); put(output); end; end.
- bypass
read/readLn’s interpretation/conversion capabilities and make nasty type casts.