RosettaCodeData/Task/File-input-output/BCPL/file-input-output.bcpl

35 lines
878 B
Plaintext

GET "libhdr"
LET start() BE $(
// Attempt to open the named files.
LET source = findinput("input.txt")
LET destination = findoutput("output.txt")
TEST source = 0 THEN
writes("Unable to open input.txt*N")
ELSE TEST destination = 0 THEN
writes("Unable to open output.txt*N")
ELSE $(
// The current character, initially unknown.
LET ch = ?
// Make the open files the current input and output streams.
selectinput(source)
selectoutput(destination)
// Copy the input to the output character by character until
// endstreamch is returned to indicate input is exhausted.
ch := rdch()
UNTIL ch = endstreamch DO $(
wrch(ch)
ch := rdch()
$)
// Close the currently selected streams.
endread()
endwrite()
$)
$)