home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ftp.cs.arizona.edu
/
ftp.cs.arizona.edu.tar
/
ftp.cs.arizona.edu
/
icon
/
historic
/
v941.tgz
/
icon.v941src.tar
/
icon.v941src
/
ipl
/
progs
/
filesect.icn
< prev
next >
Wrap
Text File
|
2002-03-26
|
1KB
|
52 lines
############################################################################
#
# File: filesect.icn
#
# Subject: Program to produce section of a file
#
# Author: Ralph E. Griswold
#
# Date: March 26, 2002
#
############################################################################
#
# This file is in the public domain.
#
############################################################################
#
# This program writes the section of the input file starting at a
# specified line number and extending a specified number of lines.
#
# The specifications are given as integer command-line arguments; the
# first is the starting line, the second is the number of lines. For
# example,
#
# filesect 20 100 <input >output
#
# copies 100 lines from input to output, starting at line 20 of input.
#
# If the specifications are out of range, the file written is truncated
# without comment.
#
#
############################################################################
procedure main(argl)
local start, count
start := argl[1] | stop("*** starting value missing")
count := argl[2] | stop("*** count missing")
if not (start := integer(start) & start > 0) then
stop("starting value not positive integer")
if not (count := integer(count) & count >= 0) then
stop("starting value not non-negative integer")
every 1 to start - 1 do
read() | exit()
every 1 to count do
write(read()) | exit()
end