search directory
[1/1] from: rchristiansen::pop::isdfa::sei-it::com at: 1-Nov-2000 18:33
Following is a script I created for searching for a keyword among
.html files in a single directory. If you see any glaring potential
problems, I'm listening. Otherwise, it works great.
-Ryan
REBOL []
print "Content-Type: text/html^/"
; --- CGI INPUT ("GET" METHOD) ---
cgi-input: make object! decode-cgi system/options/cgi/query-string
; --- CONFIG HELP FILE DIRECTORY VARIABLES ---
url-prefix: "http://www.domain.dom/path/"
directory-contents: read %./
; --- GET LIST OF FILE NAMES WITH VALID EXTENSIONS FROM
DIRECTORY ---
file-list: copy []
for file-grab 1 (length? directory-contents) 1 [
file-name: first directory-contents
file-ext: find/last file-name "."
if file-ext = %.html [
append file-list file-name
]
directory-contents: next directory-contents
]
; --- QUERY HELP FILES FOR KEYWORD ---
pages-with-keyword: copy []
help-file-titles: copy []
foreach help-file file-list [
file-contents: read help-file
if find file-contents cgi-input/keyword [
append pages-with-keyword help-file
parse file-contents [thru <TITLE> copy text to </TITLE>
(append help-file-titles text)]
]
]
; --- OUTPUT TO BROWSER ---
print {
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0
Transitional//EN">
<HTML>
<HEAD>
<TITLE>Title</TITLE>
</HEAD>
<BODY aLink=#3399ff bgColor=#ffffcc link=#0033cc
text=#333333 vLink=#990000>
<TABLE>
<!-- begin search form -->
<TR>
<TD>
<FONT color=#9a9a66
face="Times New Roman"><STRONG>Search</STRONG></FONT>
<TR>
<TD>
<form method=get action="help_search.cgi">
<FONT
FACE="'Times New Roman',Times,serif" SIZE="-1"><B>Search for
:</b></font><BR><BR>
<input type=text name="keyword"> <input type="submit"
value="search">
</form>
<!-- end search form -->
<TR>
<TD>
<FONT color=#9a9a66
face="Times New Roman"><STRONG>Search
Results</STRONG></FONT>
<TR>
<TD>
<FONT
FACE="'Times New Roman',Times,serif" SIZE="-1"><B>Click on a
link to view information about your search word
:</b></font><BR><BR>
}
for link-display 1 (length? pages-with-keyword) 1 [
page: first pages-with-keyword
page-title: first help-file-titles
print rejoin [{<TR>} {<TD>} {<A HREF="} url-prefix page {">} page-
title {</A>} {<BR>}]
pages-with-keyword: next pages-with-keyword
help-file-titles: next help-file-titles
]
print {
</TABLE>
</BODY>
</HTML>
}