Online File
Tech: The Dictionary Page Project
* dpage.sas Create empty dictionary web pages for Global Statements Dictionary. Rick Aster February 2, 2003 *; filename alpha 'c:\My Documents\dpage\alpha.txt'; data word; infile alpha truncover; input @1 letter $char1. @1 prefix $char2.; letter = lowcase(letter); prefix = lowcase(prefix); run; * Sort to put list in alphabetical order. *; proc sort data=word nodupkey out=page; by letter prefix; run; * This transpose creates variables COL1, COL2, etc. from PREFIX. The LETTER dataset links prefixes (aa, ab, etc.) with letter (a). *; proc transpose data=page (where=(prefix ne letter)) out=letter; by letter; var prefix; run; * Create a separate HTML file for each dictionary web page. *; data _null_; length filename $ 64; array lp{32} $ 2 col1-col32; merge page letter; by letter; * Read next and previous prefixes for Next and Previous links ; if _n_ < n then set page (firstobs=2 keep=prefix rename=(prefix=next)) nobs=n; if _n_ > 1 then set page (keep=prefix rename=(prefix=previous)); filename = 'c:\My Documents\dpage\' || trim(prefix) || '.html'; h2 = prefix; if letter = prefix then h2 = upcase(h2); file out filevar=filename; put '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"' / '"http://www.w3.org/TR/REC-html40/loose.dtd">' / '<html>' / '<head>' / '<title>Global Statements Dictionary: ' prefix : $upcase. +(-1) '</title>' / '<meta name="description"' / 'content="A computer dictionary for SAS programmers by Rick Aster.">' / '<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">' / '<link href="../main.css" type="text/css" rel="stylesheet">' / '</head>' / '<body>' // '<div id="page">' / '<h1 class="xlogo"><a href="../index.html" id="xlogoblue">Global Statements</a>' / '<a href="index.html" id="xlogoblack">Dictionary</a></h1>' / '<p class="smallnav">' / '<a href="' previous +(-1)'.html">Previous</a> |' / '<a href="' next +(-1) '.html">Next</a> |' / '<a href="index.html">Index</a>' @; * Link to main page for letter, *; if letter ne prefix then put ' |' / '<a href="' letter $char1. '.html">' letter $upcase1. '</a>' @; put / '</p>' // '<h2>' h2 +(-1) '</h2>'; * Link to secondary pages for letter *; if letter = prefix then do; put '<p align=center>'; do i = lbound(lp) to hbound(lp) while (lp{i} ne ''); put '<a href="' lp{i} +(-1) '.html">' lp{i} +(-1) '</a>'; end; put '</p>'; end; put '<hr>' ///// '<hr>' / / '<p class="smallnav">' / '<a href="' previous +(-1)'.html">Previous</a> |' / '<a href="' next +(-1) '.html">Next</a> |' / '<a href="index.html">Index</a>' @; if letter ne prefix then put ' |' / '<a href="' letter $char1. '.html">' letter $upcase1. '</a>' @; put / '</p>' // '</div>' // '</body>' / '</html>'; run;