summaryrefslogtreecommitdiff
path: root/ipl/progs/findtext.icn
diff options
context:
space:
mode:
Diffstat (limited to 'ipl/progs/findtext.icn')
-rw-r--r--ipl/progs/findtext.icn85
1 files changed, 85 insertions, 0 deletions
diff --git a/ipl/progs/findtext.icn b/ipl/progs/findtext.icn
new file mode 100644
index 0000000..2cea8a7
--- /dev/null
+++ b/ipl/progs/findtext.icn
@@ -0,0 +1,85 @@
+############################################################################
+#
+# 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