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
/
findtext.icn
< prev
next >
Wrap
Text File
|
2000-07-29
|
2KB
|
86 lines
############################################################################
#
# File: findtext.icn
#
# Subject: Program to retrieve data from files indexed by idxtext
#
# Author: Phillip Lee Thomas
#
# Date: November 21, 1996
#
############################################################################
#
# This file is in the public domain.
#
############################################################################
#
# History: Tested with DOS, DOS-386, OS/2, ProIcon, UNIX
#
############################################################################
#
# Version: 1.2 (August 5, 1995)
#
############################################################################
#
# See documentation with idxtext.icn, gettext.icn, adjuncts.icn
#
# History:
# (1.1) Tested with DOS, DOS-386, OS/2, ProIcon, UNIX
# (1.2) Use preprocessor include statement instead of link.
#
############################################################################
#
# Links: gettext
#
# Program findtext retrieves multiline text from database indexed by
# idxtext. Each stretch of text follows a line declaring the index
# terms:
#
# ::be ::to ::by ::retrieved
# Text to be retrieved
# by findtext.
# ::index ::line
# Each index line begins with "::".
#
############################################################################
link gettext
procedure main(args)
local count, file, out_line, s
Set_OS()
s := \args[1] | ""
file := \args[2] | ""
if *args ~= 2 then {
while *s = 0 do { # force entry of search string
writes("Search string: ")
s := read()
}
while *file = 0 do { # force entry of datafile name
writes("Search file: ")
file := read()
}
}
# Find text associated with index s in file 'file'.
count := 0
every out_line := gettext(s, file) do {
count +:= 1
write(count, ": ", out_line)
}
if count = 0 then {
write("String '", s, "' not found in indexed file '", file, "'")
write("Format: [iconx] findtext string filename")
exit(1)
}
exit(0)
end