c2012-11-17 16:29 UTC+0100 Viktor Szakats (vszakats syenar.net)
* website/samples.html
- website/samples/dosshell.html
- website/samples/dosshell.prg.html
- website/samples/screenshots/dosshell_linux.png
- website/samples/screenshots/dosshell_w32.png
+ website/samples/osshell.html
+ website/samples/osshell.prg.html
+ website/samples/screenshots/osshell_linux.png
+ website/samples/screenshots/osshell_w32.png
- website/samples/dates4.html
- website/samples/dates4.prg.html
- website/samples/testcgi.html
- website/samples/testcgi.prg.html
- website/samples/screenshots/testcgi.gif
* synced files with /tests dir
This commit is contained in:
@@ -16,6 +16,23 @@
|
||||
The license applies to all entries newer than 2009-04-28.
|
||||
*/
|
||||
|
||||
c2012-11-17 16:29 UTC+0100 Viktor Szakats (vszakats syenar.net)
|
||||
* website/samples.html
|
||||
- website/samples/dosshell.html
|
||||
- website/samples/dosshell.prg.html
|
||||
- website/samples/screenshots/dosshell_linux.png
|
||||
- website/samples/screenshots/dosshell_w32.png
|
||||
+ website/samples/osshell.html
|
||||
+ website/samples/osshell.prg.html
|
||||
+ website/samples/screenshots/osshell_linux.png
|
||||
+ website/samples/screenshots/osshell_w32.png
|
||||
- website/samples/dates4.html
|
||||
- website/samples/dates4.prg.html
|
||||
- website/samples/testcgi.html
|
||||
- website/samples/testcgi.prg.html
|
||||
- website/samples/screenshots/testcgi.gif
|
||||
* synced files with /tests dir
|
||||
|
||||
2012-11-17 14:56 UTC+0100 Viktor Szakats (vszakats syenar.net)
|
||||
* contrib/hbodbc/hbodbc.hbp
|
||||
* contrib/hbodbc/odbc.c
|
||||
|
||||
@@ -96,11 +96,10 @@
|
||||
<li><a href="samples/codebloc.html" class="blue_link">Codeblock support sample (codebloc.prg)</a></li>
|
||||
<li><a href="samples/codebl.html" class="blue_link">Codeblock advanced sample (codebl.prg)</a></li>
|
||||
<li><a href="samples/dates3.html" class="blue_link">Manipulation of date values (dates3.prg)</a></li>
|
||||
<li><a href="samples/dates4.html" class="blue_link">Dates values with hbct.lib & hbmisc.lib (dates4.prg)</a></li>
|
||||
<li><a href="samples/byref.html" class="blue_link">Manipulating variables by reference (byref.prg) </a></li>
|
||||
<li><a href="samples/parseini.html" class="blue_link">Test for Ini file reading/writing (parseini.prg)</a></li>
|
||||
<li><a href="samples/initexit.html" class="blue_link">INIT and EXIT functions support (initexit.prg)</a><a href="samples/byref.html" class="blue_link"></a></li>
|
||||
<li><a href="samples/dosshell.html" class="blue_link">Run command: About to shell to DOS (dosshell.prg)</a></li>
|
||||
<li><a href="samples/osshell.html" class="blue_link">Run command: About to shell to OS (osshell.prg)</a></li>
|
||||
<li><a href="samples/longdev.html" class="blue_link">Testing long string handling support (longdev.prg)</a></li>
|
||||
<li><a href="samples/mousetst.html" class="blue_link">Mouse sample support (mousetst.prg) </a></li>
|
||||
</ul></td>
|
||||
@@ -274,7 +273,6 @@
|
||||
<td > </td>
|
||||
<td valign="top"><ul>
|
||||
<li><a href="samples/testhtml.html" class="blue_link">Harbour Test of a HTML-Generator class (testhtml.prg)</a></li>
|
||||
<li><a href="samples/testcgi.html" class="blue_link">Harbour Test of a CGI/HTML-Generator class (testcgi.prg)</a></li>
|
||||
</ul></td>
|
||||
<td > </td>
|
||||
</tr>
|
||||
|
||||
@@ -1,124 +0,0 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
<title>Harbour Project - Samples -> dates3</title>
|
||||
<link href="../css/styles.css" rel="stylesheet" type="text/css" />
|
||||
<script type="text/javascript" src="../menu/stmenu.js"></script></head>
|
||||
<body>
|
||||
<table width="740" border="0" align="center" cellpadding="0" cellspacing="1" bordercolor="#000000">
|
||||
<tr>
|
||||
<td valign="top" bgcolor="#000000"><table width="100%" border="0" cellspacing="0" cellpadding="0">
|
||||
<tr>
|
||||
<td height="229" valign="top" background="../images/header_03.png" bgcolor="#FFFFFF"><table width="100%" border="0" cellspacing="0" cellpadding="0">
|
||||
<tr>
|
||||
<td><table width="100%" border="0" cellspacing="0" cellpadding="0">
|
||||
<tr>
|
||||
<td width="6%"><img src="../images/header_01.jpg" width="287" height="164" /></td>
|
||||
<td width="94%"><img src="../images/header_02.jpg" width="448" height="164" /></td>
|
||||
</tr>
|
||||
</table></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td background="../images/menu-bg.gif"><table width="100%" border="0" cellspacing="0" cellpadding="0">
|
||||
|
||||
<tr>
|
||||
<td width="95%" height="65" valign="top" background="../images/menu-bg2.png"><script type="text/javascript" src="../menu/harbour-menu.js"></script></td>
|
||||
<td width="5%" height="65" valign="middle"> </td>
|
||||
</tr>
|
||||
</table></td>
|
||||
</tr>
|
||||
</table></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td bgcolor="#FFFFFF"><table width="98%" border="0" align="center" cellpadding="0" cellspacing="0">
|
||||
<tr>
|
||||
<td> </td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><table width="100%" border="0" align="center" cellpadding="0" cellspacing="0">
|
||||
<tr valign="bottom">
|
||||
<td width="2%" class="tabela_box_trans_TL"> </td>
|
||||
<td colspan="2"><table width="100%" border="0" cellspacing="0" cellpadding="0">
|
||||
<tr>
|
||||
<td width="96%" height="26" valign="bottom" class="title">Manipulation of date values</td>
|
||||
<td width="1%" rowspan="2" align="center" valign="middle"><a href="../samples.html"><img src="../images/more-samples.png" width="60" height="60" border="0" /></a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="99%" valign="top">Example of dates with several functions of hbct.lib & hbmisc.lib </td>
|
||||
</tr>
|
||||
</table></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td > </td>
|
||||
<td width="96%" valign="top" class="sample_subtitle"> </td>
|
||||
<td width="2%" > </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td > </td>
|
||||
<td valign="top" class="sample_subtitle">Files:</td>
|
||||
<td > </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td > </td>
|
||||
<td valign="top"><ul>
|
||||
<li><a href="dates3.prg.html" class="blue_link">tests/dates3.prg</a></li>
|
||||
</ul></td>
|
||||
<td > </td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td > </td>
|
||||
<td valign="top" class="sample_subtitle">Screenshot:</td>
|
||||
<td > </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td > </td>
|
||||
<td valign="top"><div align="center"><img src="screenshots/dates3_w32.png" width="440" height="340" /></div></td>
|
||||
<td > </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td > </td>
|
||||
<td valign="top"> </td>
|
||||
<td > </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td > </td>
|
||||
<td valign="top" class="sample_subtitle">How to compile:</td>
|
||||
<td > </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td > </td>
|
||||
<td valign="top">To learn how to compile/link this example see our specific section on this <a href="../samples.html#compile" class="blue_link">link</a>.</td>
|
||||
<td > </td>
|
||||
</tr>
|
||||
|
||||
|
||||
|
||||
|
||||
</table></td>
|
||||
</tr>
|
||||
|
||||
</table></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td bgcolor="#FFFFFF"> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td height="32" background="../images/footer.gif"><table width="98%" border="0" align="center" cellpadding="0" cellspacing="0">
|
||||
<tr>
|
||||
<td width="33%" class="footer"><a href="/" class="whitelink">Copyright © 1999-<script type="text/javascript">copyright_year()</script> The Harbour Project.</a></td>
|
||||
<td width="33%" class="footer"><div align="center"><a href="/legalnotes.html" class="whitelink">Terms of Service</a> | <a href="/contact.html" class="whitelink">Contact Us</a></div></td>
|
||||
<td width="33%" class="footer"><div align="right">Design
|
||||
by <a href="mailto: vailtom@gmail.com" class="whitelink">Vailton Renato</a> </div>
|
||||
<div align="right"></div></td>
|
||||
</tr>
|
||||
</table></td>
|
||||
</tr>
|
||||
</table></td>
|
||||
</tr>
|
||||
</table>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,59 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3c.org/TR/1999/REC-html401-19991224/loose.dtd">
|
||||
<HTML xmlns="http://www.w3.org/1999/xhtml"><HEAD><TITLE>dates4.prg</TITLE>
|
||||
<META http-equiv=Content-Type content="text/html; charset=utf-8">
|
||||
<META content="MSHTML 6.00.6000.16386" name=GENERATOR>
|
||||
<STYLE type=text/css>
|
||||
<!--
|
||||
body { color: #000000; background-color: #FFFFFF; }
|
||||
.any1-activedot { color: #800080; }
|
||||
.any1-comment { color: #008080; }
|
||||
.any1-constant { color: #800080; }
|
||||
.any1-escapeampersand { color: #00FF00; font-weight: bold; }
|
||||
.any1-function { color: #808000; }
|
||||
.any1-identifier { color: #000000; }
|
||||
.any1-number { color: #FF0000; }
|
||||
.any1-preprocessor { }
|
||||
.any1-reservedword { color: #800000; }
|
||||
.any1-space { }
|
||||
.any1-string { color: #0000FF; }
|
||||
.any1-symbol { }
|
||||
.any1-variable { color: #808000; }
|
||||
-->
|
||||
</STYLE>
|
||||
</HEAD>
|
||||
<BODY bgColor=#ffffff>
|
||||
<PRE><CODE><SPAN style="FONT: 10pt Courier New"><SPAN class=any1-comment>// Testing Harbour dates management.
|
||||
</SPAN><SPAN class=any1-constant>#include</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-string>"set.ch"
|
||||
|
||||
</SPAN><SPAN class=any1-reservedword>STATIC</SPAN><SPAN class=any1-space> s_cNewLine
|
||||
|
||||
</SPAN><SPAN class=any1-reservedword>function</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-variable>main</SPAN><SPAN class=any1-symbol>()
|
||||
</SPAN><SPAN class=any1-reservedword>LOCAL</SPAN><SPAN class=any1-space> i
|
||||
</SPAN><SPAN class=any1-reservedword>LOCAL</SPAN><SPAN class=any1-space> dDate := </SPAN><SPAN class=any1-function>date</SPAN><SPAN class=any1-symbol>()
|
||||
|
||||
s_cNewLine := </SPAN><SPAN class=any1-variable>hb_eol</SPAN><SPAN class=any1-symbol>()
|
||||
|
||||
</SPAN><SPAN class=any1-function>set</SPAN><SPAN class=any1-symbol>( _SET_DATEFORMAT, </SPAN><SPAN class=any1-string>"dd/mm/yyyy"</SPAN><SPAN class=any1-space> )
|
||||
|
||||
</SPAN><SPAN class=any1-reservedword>for</SPAN><SPAN class=any1-space> i := </SPAN><SPAN class=any1-number>7</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-function>to</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-number>49</SPAN><SPAN class=any1-space> step </SPAN><SPAN class=any1-number>7
|
||||
</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-variable>CheckDate</SPAN><SPAN class=any1-symbol>( dDate )
|
||||
dDate += i
|
||||
</SPAN><SPAN class=any1-reservedword>next
|
||||
|
||||
return</SPAN><SPAN class=any1-space> nil
|
||||
|
||||
</SPAN><SPAN class=any1-reservedword>function</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-variable>CheckDate</SPAN><SPAN class=any1-symbol>( dDate )
|
||||
</SPAN><SPAN class=any1-function>OutStd</SPAN><SPAN class=any1-symbol>( </SPAN><SPAN class=any1-string>"Testing date:"</SPAN><SPAN class=any1-symbol>, dDate , s_cNewLine )
|
||||
</SPAN><SPAN class=any1-function>OutStd</SPAN><SPAN class=any1-symbol>( </SPAN><SPAN class=any1-string>"Days in month..:"</SPAN><SPAN class=any1-symbol>, </SPAN><SPAN class=any1-variable>daysinmonth</SPAN><SPAN class=any1-symbol>( dDate ), s_cNewLine )
|
||||
</SPAN><SPAN class=any1-function>OutStd</SPAN><SPAN class=any1-symbol>( </SPAN><SPAN class=any1-string>"Day of year....:"</SPAN><SPAN class=any1-symbol>, </SPAN><SPAN class=any1-variable>doy</SPAN><SPAN class=any1-symbol>( dDate ), s_cNewLine )
|
||||
</SPAN><SPAN class=any1-function>OutStd</SPAN><SPAN class=any1-symbol>( </SPAN><SPAN class=any1-string>"Begin of month.:"</SPAN><SPAN class=any1-symbol>, </SPAN><SPAN class=any1-variable>bom</SPAN><SPAN class=any1-symbol>( dDate ), s_cNewLine )
|
||||
</SPAN><SPAN class=any1-function>OutStd</SPAN><SPAN class=any1-symbol>( </SPAN><SPAN class=any1-string>"End of month...:"</SPAN><SPAN class=any1-symbol>, </SPAN><SPAN class=any1-variable>eom</SPAN><SPAN class=any1-symbol>( dDate ), s_cNewLine )
|
||||
</SPAN><SPAN class=any1-function>OutStd</SPAN><SPAN class=any1-symbol>( </SPAN><SPAN class=any1-string>"Week of month..:"</SPAN><SPAN class=any1-symbol>, </SPAN><SPAN class=any1-variable>wom</SPAN><SPAN class=any1-symbol>( dDate ), s_cNewLine )
|
||||
</SPAN><SPAN class=any1-function>OutStd</SPAN><SPAN class=any1-symbol>( </SPAN><SPAN class=any1-string>"Week of year...:"</SPAN><SPAN class=any1-symbol>, </SPAN><SPAN class=any1-variable>woy</SPAN><SPAN class=any1-symbol>( dDate ), s_cNewLine )
|
||||
</SPAN><SPAN class=any1-function>OutStd</SPAN><SPAN class=any1-symbol>( </SPAN><SPAN class=any1-string>"Begin of year..:"</SPAN><SPAN class=any1-symbol>, </SPAN><SPAN class=any1-variable>boy</SPAN><SPAN class=any1-symbol>( dDate ), s_cNewLine )
|
||||
</SPAN><SPAN class=any1-function>OutStd</SPAN><SPAN class=any1-symbol>( </SPAN><SPAN class=any1-string>"End of year....:"</SPAN><SPAN class=any1-symbol>, </SPAN><SPAN class=any1-variable>eoy</SPAN><SPAN class=any1-symbol>( dDate ), s_cNewLine )
|
||||
</SPAN><SPAN class=any1-variable>__Accept</SPAN><SPAN class=any1-symbol>( </SPAN><SPAN class=any1-string>"Press ENTER to continue..."</SPAN><SPAN class=any1-space> )
|
||||
</SPAN><SPAN class=any1-function>OutStd</SPAN><SPAN class=any1-symbol>( </SPAN><SPAN class=any1-function>chr</SPAN><SPAN class=any1-symbol>( </SPAN><SPAN class=any1-number>10</SPAN><SPAN class=any1-space> ), </SPAN><SPAN class=any1-function>chr</SPAN><SPAN class=any1-symbol>( </SPAN><SPAN class=any1-number>10</SPAN><SPAN class=any1-space> ) )
|
||||
|
||||
</SPAN><SPAN class=any1-reservedword>return</SPAN><SPAN class=any1-space> nil</SPAN></SPAN></CODE></PRE>
|
||||
</BODY></HTML>
|
||||
@@ -2,7 +2,7 @@
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
<title>Harbour Project - Samples -> dosshell</title>
|
||||
<title>Harbour Project - Samples -> osshell</title>
|
||||
<link href="../css/styles.css" rel="stylesheet" type="text/css" />
|
||||
<script type="text/javascript" src="../menu/stmenu.js"></script></head>
|
||||
<body>
|
||||
@@ -64,7 +64,7 @@
|
||||
<tr>
|
||||
<td > </td>
|
||||
<td valign="top"><ul>
|
||||
<li><a href="dosshell.prg.html" class="blue_link">tests/dosshell.prg</a></li>
|
||||
<li><a href="osshell.prg.html" class="blue_link">tests/osshell.prg</a></li>
|
||||
</ul></td>
|
||||
<td > </td>
|
||||
</tr>
|
||||
@@ -81,11 +81,11 @@
|
||||
</tr>
|
||||
<tr>
|
||||
<td > </td>
|
||||
<td valign="top"><div align="center"><span class="read_more"><img src="screenshots/dosshell_w32.png" width="580" height="340" /><br />
|
||||
dosshell sample running on Windows Vista<br />
|
||||
<td valign="top"><div align="center"><span class="read_more"><img src="screenshots/osshell_w32.png" width="580" height="340" /><br />
|
||||
osshell sample running on Windows Vista<br />
|
||||
<br />
|
||||
<img src="screenshots/dosshell_linux.png" width="545" height="131" /><br />
|
||||
dosshell sample running on Linux<br />
|
||||
<img src="screenshots/osshell_linux.png" width="545" height="131" /><br />
|
||||
osshell sample running on Linux<br />
|
||||
<br />
|
||||
Note: To get the same result on Linux, you could execute a command "run bash"<br />
|
||||
to forcing the beginning of a new shell. <br />
|
||||
|
Before Width: | Height: | Size: 4.8 KiB After Width: | Height: | Size: 4.8 KiB |
|
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 11 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 39 KiB |
@@ -1,127 +0,0 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
<title>Harbour Project - Samples -> testcgi</title>
|
||||
<link href="../css/styles.css" rel="stylesheet" type="text/css" />
|
||||
<script type="text/javascript" src="../menu/stmenu.js"></script></head>
|
||||
<body>
|
||||
<table width="740" border="0" align="center" cellpadding="0" cellspacing="1" bordercolor="#000000">
|
||||
<tr>
|
||||
<td valign="top" bgcolor="#000000"><table width="100%" border="0" cellspacing="0" cellpadding="0">
|
||||
<tr>
|
||||
<td height="229" valign="top" background="../images/header_03.png" bgcolor="#FFFFFF"><table width="100%" border="0" cellspacing="0" cellpadding="0">
|
||||
<tr>
|
||||
<td><table width="100%" border="0" cellspacing="0" cellpadding="0">
|
||||
<tr>
|
||||
<td width="6%"><img src="../images/header_01.jpg" width="287" height="164" /></td>
|
||||
<td width="94%"><img src="../images/header_02.jpg" width="448" height="164" /></td>
|
||||
</tr>
|
||||
</table></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td background="../images/menu-bg.gif"><table width="100%" border="0" cellspacing="0" cellpadding="0">
|
||||
|
||||
<tr>
|
||||
<td width="95%" height="65" valign="top" background="../images/menu-bg2.png"><script type="text/javascript" src="../menu/harbour-menu.js"></script></td>
|
||||
<td width="5%" height="65" valign="middle"> </td>
|
||||
</tr>
|
||||
</table></td>
|
||||
</tr>
|
||||
</table></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td bgcolor="#FFFFFF"><table width="98%" border="0" align="center" cellpadding="0" cellspacing="0">
|
||||
<tr>
|
||||
<td> </td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><table width="100%" border="0" align="center" cellpadding="0" cellspacing="0">
|
||||
<tr valign="bottom">
|
||||
<td width="2%" class="tabela_box_trans_TL"> </td>
|
||||
<td colspan="2"><table width="100%" border="0" cellspacing="0" cellpadding="0">
|
||||
<tr>
|
||||
<td width="96%" height="26" valign="bottom" class="title">Harbour Test of a CGI/HTML-Generator class</td>
|
||||
<td width="1%" rowspan="2" align="center" valign="middle"><a href="../samples.html"><img src="../images/more-samples.png" width="60" height="60" border="0" /></a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="99%" valign="top">This example shows how to work with Web pages using a custom class to manipulate data coming from a file and returns it to web browser. </td>
|
||||
</tr>
|
||||
</table></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td > </td>
|
||||
<td width="96%" valign="top" class="sample_subtitle"> </td>
|
||||
<td width="2%" > </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td > </td>
|
||||
<td valign="top" class="sample_subtitle">Files:</td>
|
||||
<td > </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td > </td>
|
||||
<td valign="top"><ul>
|
||||
<li><a href="testcgi.prg.html" class="blue_link">tests/testcgi.prg</a></li>
|
||||
<li><a href="function.cfm.html" class="blue_link">tests/function.cfm</a></li>
|
||||
<li><div class="sample_link_missing">tests/list.txt (missing)</div>
|
||||
</li>
|
||||
</ul></td>
|
||||
<td > </td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td > </td>
|
||||
<td valign="top" class="sample_subtitle">Screenshot:</td>
|
||||
<td > </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td > </td>
|
||||
<td valign="top"><div align="center"><img src="screenshots/testcgi.gif" width="500" height="517" /></div></td>
|
||||
<td > </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td > </td>
|
||||
<td valign="top"> </td>
|
||||
<td > </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td > </td>
|
||||
<td valign="top" class="sample_subtitle">How to compile:</td>
|
||||
<td > </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td > </td>
|
||||
<td valign="top">To learn how to compile/link this example see our specific section on this <a href="../samples.html#compile" class="blue_link">link</a>.</td>
|
||||
<td > </td>
|
||||
</tr>
|
||||
|
||||
|
||||
|
||||
|
||||
</table></td>
|
||||
</tr>
|
||||
|
||||
</table></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td bgcolor="#FFFFFF"> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td height="32" background="../images/footer.gif"><table width="98%" border="0" align="center" cellpadding="0" cellspacing="0">
|
||||
<tr>
|
||||
<td width="33%" class="footer"><a href="/" class="whitelink">Copyright © 1999-<script type="text/javascript">copyright_year()</script> The Harbour Project.</a></td>
|
||||
<td width="33%" class="footer"><div align="center"><a href="/legalnotes.html" class="whitelink">Terms of Service</a> | <a href="/contact.html" class="whitelink">Contact Us</a></div></td>
|
||||
<td width="33%" class="footer"><div align="right">Design
|
||||
by <a href="mailto: vailtom@gmail.com" class="whitelink">Vailton Renato</a> </div>
|
||||
<div align="right"></div></td>
|
||||
</tr>
|
||||
</table></td>
|
||||
</tr>
|
||||
</table></td>
|
||||
</tr>
|
||||
</table>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,494 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3c.org/TR/1999/REC-html401-19991224/loose.dtd">
|
||||
<HTML xmlns="http://www.w3.org/1999/xhtml"><HEAD><TITLE>testcgi.prg</TITLE>
|
||||
<META http-equiv=Content-Type content="text/html; charset=utf-8">
|
||||
<META content="MSHTML 6.00.6000.16386" name=GENERATOR>
|
||||
<STYLE type=text/css>
|
||||
<!--
|
||||
body { color: #000000; background-color: #FFFFFF; }
|
||||
.any1-activedot { color: #800080; }
|
||||
.any1-comment { color: #008080; }
|
||||
.any1-constant { color: #800080; }
|
||||
.any1-escapeampersand { color: #00FF00; font-weight: bold; }
|
||||
.any1-function { color: #808000; }
|
||||
.any1-identifier { color: #000000; }
|
||||
.any1-number { color: #FF0000; }
|
||||
.any1-preprocessor { }
|
||||
.any1-reservedword { color: #800000; }
|
||||
.any1-space { }
|
||||
.any1-string { color: #0000FF; }
|
||||
.any1-symbol { }
|
||||
.any1-variable { color: #808000; }
|
||||
-->
|
||||
</STYLE>
|
||||
</HEAD>
|
||||
<BODY bgColor=#ffffff>
|
||||
<PRE><CODE><SPAN style="FONT: 10pt Courier New"><SPAN class=any1-comment>/*
|
||||
*
|
||||
* Harbour Test of a CGI/HTML-Generator class.
|
||||
*
|
||||
* 1999/05/30 First implementation.
|
||||
*
|
||||
* Tips: - Use ShowResults to make dynamic html (to test dynamic
|
||||
* results, put the exe file on CGI-BIN dir or equivalent);
|
||||
* - Use SaveToFile to make static html page
|
||||
*
|
||||
* 1999/05/31 Initial CGI functionality.
|
||||
* 1999/06/01 Translated %nn to correct chars.
|
||||
* 1999/06/02 Dynamic TAG matching routines (inspired on Delphi).
|
||||
* First attempt to convert Delphi's ISAPI dll of WebSites'
|
||||
* Function List
|
||||
* (See http://www.flexsys-ci.com/harbour-project/functions.htm)
|
||||
* 1999/06/11 List can be viewed online at
|
||||
* http://www.flexsys-ci.com/cgi-bin/testcgi.exe
|
||||
* 1999/07/29 Changed qOut() calls to OutStd() calls.
|
||||
*
|
||||
*/
|
||||
|
||||
</SPAN><SPAN class=any1-constant>#define</SPAN><SPAN class=any1-space> CGI_SERVER_SOFTWARE </SPAN><SPAN class=any1-number>01
|
||||
</SPAN><SPAN class=any1-constant>#define</SPAN><SPAN class=any1-space> CGI_SERVER_NAME </SPAN><SPAN class=any1-number>02
|
||||
</SPAN><SPAN class=any1-constant>#define</SPAN><SPAN class=any1-space> CGI_GATEWAY_INTERFACE </SPAN><SPAN class=any1-number>03
|
||||
</SPAN><SPAN class=any1-constant>#define</SPAN><SPAN class=any1-space> CGI_SERVER_PROTOCOL </SPAN><SPAN class=any1-number>04
|
||||
</SPAN><SPAN class=any1-constant>#define</SPAN><SPAN class=any1-space> CGI_SERVER_PORT </SPAN><SPAN class=any1-number>05
|
||||
</SPAN><SPAN class=any1-constant>#define</SPAN><SPAN class=any1-space> CGI_REQUEST_METHOD </SPAN><SPAN class=any1-number>06
|
||||
</SPAN><SPAN class=any1-constant>#define</SPAN><SPAN class=any1-space> CGI_HTTP_ACCEPT </SPAN><SPAN class=any1-number>07
|
||||
</SPAN><SPAN class=any1-constant>#define</SPAN><SPAN class=any1-space> CGI_HTTP_USER_AGENT </SPAN><SPAN class=any1-number>08
|
||||
</SPAN><SPAN class=any1-constant>#define</SPAN><SPAN class=any1-space> CGI_HTTP_REFERER </SPAN><SPAN class=any1-number>09
|
||||
</SPAN><SPAN class=any1-constant>#define</SPAN><SPAN class=any1-space> CGI_PATH_INFO </SPAN><SPAN class=any1-number>10
|
||||
</SPAN><SPAN class=any1-constant>#define</SPAN><SPAN class=any1-space> CGI_PATH_TRANSLATED </SPAN><SPAN class=any1-number>11
|
||||
</SPAN><SPAN class=any1-constant>#define</SPAN><SPAN class=any1-space> CGI_SCRIPT_NAME </SPAN><SPAN class=any1-number>12
|
||||
</SPAN><SPAN class=any1-constant>#define</SPAN><SPAN class=any1-space> CGI_QUERY_STRING </SPAN><SPAN class=any1-number>13
|
||||
</SPAN><SPAN class=any1-constant>#define</SPAN><SPAN class=any1-space> CGI_REMOTE_HOST </SPAN><SPAN class=any1-number>14
|
||||
</SPAN><SPAN class=any1-constant>#define</SPAN><SPAN class=any1-space> CGI_REMOTE_ADDR </SPAN><SPAN class=any1-number>15
|
||||
</SPAN><SPAN class=any1-constant>#define</SPAN><SPAN class=any1-space> CGI_REMOTE_USER </SPAN><SPAN class=any1-number>16
|
||||
</SPAN><SPAN class=any1-constant>#define</SPAN><SPAN class=any1-space> CGI_AUTH_TYPE </SPAN><SPAN class=any1-number>17
|
||||
</SPAN><SPAN class=any1-constant>#define</SPAN><SPAN class=any1-space> CGI_CONTENT_TYPE </SPAN><SPAN class=any1-number>18
|
||||
</SPAN><SPAN class=any1-constant>#define</SPAN><SPAN class=any1-space> CGI_CONTENT_LENGTH </SPAN><SPAN class=any1-number>19
|
||||
</SPAN><SPAN class=any1-constant>#define</SPAN><SPAN class=any1-space> CGI_ANNOTATION_SERVER </SPAN><SPAN class=any1-number>20
|
||||
|
||||
</SPAN><SPAN class=any1-constant>#define</SPAN><SPAN class=any1-space> IF_BUFFER </SPAN><SPAN class=any1-number>65535
|
||||
|
||||
</SPAN><SPAN class=any1-reservedword>FUNCTION</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-variable>Main</SPAN><SPAN class=any1-symbol>()
|
||||
|
||||
</SPAN><SPAN class=any1-reservedword>LOCAL</SPAN><SPAN class=any1-space> oHTML := </SPAN><SPAN class=any1-variable>THTML</SPAN><SPAN class=any1-symbol>():</SPAN><SPAN class=any1-variable>New</SPAN><SPAN class=any1-symbol>()
|
||||
</SPAN><SPAN class=any1-reservedword>LOCAL</SPAN><SPAN class=any1-space> hFile, nPos, cString, cBuf, i, cTable, cLine
|
||||
|
||||
oHTML:</SPAN><SPAN class=any1-variable>SetHTMLFile</SPAN><SPAN class=any1-symbol>( </SPAN><SPAN class=any1-string>"function.cfm"</SPAN><SPAN class=any1-space> )
|
||||
|
||||
hFile := </SPAN><SPAN class=any1-function>fOpen</SPAN><SPAN class=any1-symbol>( </SPAN><SPAN class=any1-string>"list.txt"</SPAN><SPAN class=any1-symbol>, </SPAN><SPAN class=any1-number>0</SPAN><SPAN class=any1-space> )
|
||||
|
||||
cString := </SPAN><SPAN class=any1-function>space</SPAN><SPAN class=any1-symbol>( IF_BUFFER )
|
||||
cBuf := </SPAN><SPAN class=any1-string>""
|
||||
</SPAN><SPAN class=any1-space> cTable := </SPAN><SPAN class=any1-string>""
|
||||
|
||||
</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-comment>// Builds dynamic table replacement
|
||||
</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-reservedword>WHILE</SPAN><SPAN class=any1-space> hFile != -</SPAN><SPAN class=any1-number>1</SPAN><SPAN class=any1-space> .AND. (nPos := </SPAN><SPAN class=any1-function>fRead</SPAN><SPAN class=any1-symbol>( hFile, @cString, IF_BUFFER )) > </SPAN><SPAN class=any1-number>0
|
||||
</SPAN><SPAN class=any1-space> i := </SPAN><SPAN class=any1-number>1
|
||||
</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-reservedword>DO</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-reservedword>WHILE</SPAN><SPAN class=any1-space> i <= nPos
|
||||
|
||||
</SPAN><SPAN class=any1-reservedword>IF</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-function>substr</SPAN><SPAN class=any1-symbol>( cString, i, </SPAN><SPAN class=any1-number>1</SPAN><SPAN class=any1-space> ) = </SPAN><SPAN class=any1-function>chr</SPAN><SPAN class=any1-symbol>( </SPAN><SPAN class=any1-number>13</SPAN><SPAN class=any1-space> )
|
||||
i := i + </SPAN><SPAN class=any1-number>1
|
||||
</SPAN><SPAN class=any1-space> cLine := cBuf
|
||||
cBuf := </SPAN><SPAN class=any1-string>""
|
||||
|
||||
</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-reservedword>IF</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-function>left</SPAN><SPAN class=any1-symbol>( cLine, </SPAN><SPAN class=any1-number>1</SPAN><SPAN class=any1-space> ) <> </SPAN><SPAN class=any1-string>';'
|
||||
</SPAN><SPAN class=any1-space> cTable += </SPAN><SPAN class=any1-string>'<TR>'</SPAN><SPAN class=any1-space> + </SPAN><SPAN class=any1-function>chr</SPAN><SPAN class=any1-symbol>(</SPAN><SPAN class=any1-number>10</SPAN><SPAN class=any1-symbol>)+</SPAN><SPAN class=any1-function>chr</SPAN><SPAN class=any1-symbol>(</SPAN><SPAN class=any1-number>13</SPAN><SPAN class=any1-symbol>) + ;
|
||||
</SPAN><SPAN class=any1-string>'<TD WIDTH="50%"><FONT SIZE="2" FACE="Tahoma">'</SPAN><SPAN class=any1-space> + ;
|
||||
</SPAN><SPAN class=any1-variable>ParseString</SPAN><SPAN class=any1-symbol>( cLine, </SPAN><SPAN class=any1-string>';'</SPAN><SPAN class=any1-symbol>, </SPAN><SPAN class=any1-number>1</SPAN><SPAN class=any1-space> ) + </SPAN><SPAN class=any1-string>'</FONT></TD>'</SPAN><SPAN class=any1-space> + </SPAN><SPAN class=any1-function>chr</SPAN><SPAN class=any1-symbol>(</SPAN><SPAN class=any1-number>10</SPAN><SPAN class=any1-symbol>)+</SPAN><SPAN class=any1-function>chr</SPAN><SPAN class=any1-symbol>(</SPAN><SPAN class=any1-number>13</SPAN><SPAN class=any1-symbol>) + ;
|
||||
</SPAN><SPAN class=any1-string>'<TD WIDTH="16%">'</SPAN><SPAN class=any1-space> + ;
|
||||
</SPAN><SPAN class=any1-reservedword>if</SPAN><SPAN class=any1-symbol>( </SPAN><SPAN class=any1-variable>ParseString</SPAN><SPAN class=any1-symbol>( cLine, </SPAN><SPAN class=any1-string>';'</SPAN><SPAN class=any1-symbol>, </SPAN><SPAN class=any1-number>2</SPAN><SPAN class=any1-space> ) = </SPAN><SPAN class=any1-string>'R'</SPAN><SPAN class=any1-symbol>, ;
|
||||
</SPAN><SPAN class=any1-string>'<CENTER><IMG SRC="images/purple-m.gif">'</SPAN><SPAN class=any1-symbol>, ;
|
||||
</SPAN><SPAN class=any1-string>'&nbsp'</SPAN><SPAN class=any1-space> ) + ;
|
||||
</SPAN><SPAN class=any1-string>'</TD>'</SPAN><SPAN class=any1-space> + </SPAN><SPAN class=any1-function>chr</SPAN><SPAN class=any1-symbol>(</SPAN><SPAN class=any1-number>10</SPAN><SPAN class=any1-symbol>)+</SPAN><SPAN class=any1-function>chr</SPAN><SPAN class=any1-symbol>(</SPAN><SPAN class=any1-number>13</SPAN><SPAN class=any1-symbol>) + ;
|
||||
</SPAN><SPAN class=any1-string>'<TD WIDTH="16%">'</SPAN><SPAN class=any1-space> + ;
|
||||
</SPAN><SPAN class=any1-reservedword>if</SPAN><SPAN class=any1-symbol>( </SPAN><SPAN class=any1-variable>ParseString</SPAN><SPAN class=any1-symbol>( cLine, </SPAN><SPAN class=any1-string>';'</SPAN><SPAN class=any1-symbol>, </SPAN><SPAN class=any1-number>2</SPAN><SPAN class=any1-space> ) = </SPAN><SPAN class=any1-string>'S'</SPAN><SPAN class=any1-symbol>, ;
|
||||
</SPAN><SPAN class=any1-string>'<CENTER><IMG SRC="images/purple-m.gif">'</SPAN><SPAN class=any1-symbol>, ;
|
||||
</SPAN><SPAN class=any1-string>'&nbsp'</SPAN><SPAN class=any1-space> ) + ;
|
||||
</SPAN><SPAN class=any1-string>'</TD>'</SPAN><SPAN class=any1-space> + </SPAN><SPAN class=any1-function>chr</SPAN><SPAN class=any1-symbol>(</SPAN><SPAN class=any1-number>10</SPAN><SPAN class=any1-symbol>)+</SPAN><SPAN class=any1-function>chr</SPAN><SPAN class=any1-symbol>(</SPAN><SPAN class=any1-number>13</SPAN><SPAN class=any1-symbol>) + ;
|
||||
</SPAN><SPAN class=any1-string>'<TD WIDTH="16%">'</SPAN><SPAN class=any1-space> + ;
|
||||
</SPAN><SPAN class=any1-reservedword>if</SPAN><SPAN class=any1-symbol>( </SPAN><SPAN class=any1-variable>ParseString</SPAN><SPAN class=any1-symbol>( cLine, </SPAN><SPAN class=any1-string>';'</SPAN><SPAN class=any1-symbol>, </SPAN><SPAN class=any1-number>2</SPAN><SPAN class=any1-space> ) = </SPAN><SPAN class=any1-string>'N'</SPAN><SPAN class=any1-symbol>, ;
|
||||
</SPAN><SPAN class=any1-string>'<CENTER><IMG SRC="images/purple-m.gif">'</SPAN><SPAN class=any1-symbol>, ;
|
||||
</SPAN><SPAN class=any1-string>'&nbsp'</SPAN><SPAN class=any1-space> ) + ;
|
||||
</SPAN><SPAN class=any1-string>'</TD>'</SPAN><SPAN class=any1-space> + </SPAN><SPAN class=any1-function>chr</SPAN><SPAN class=any1-symbol>(</SPAN><SPAN class=any1-number>10</SPAN><SPAN class=any1-symbol>)+</SPAN><SPAN class=any1-function>chr</SPAN><SPAN class=any1-symbol>(</SPAN><SPAN class=any1-number>13</SPAN><SPAN class=any1-symbol>) + ;
|
||||
</SPAN><SPAN class=any1-string>'</TR>'
|
||||
</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-reservedword>ENDIF
|
||||
</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-reservedword>ELSE
|
||||
</SPAN><SPAN class=any1-space> cBuf := cBuf + </SPAN><SPAN class=any1-function>substr</SPAN><SPAN class=any1-symbol>( cString, i, </SPAN><SPAN class=any1-number>1</SPAN><SPAN class=any1-space> )
|
||||
</SPAN><SPAN class=any1-reservedword>ENDIF
|
||||
|
||||
</SPAN><SPAN class=any1-space> i++
|
||||
</SPAN><SPAN class=any1-reservedword>ENDDO
|
||||
</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-reservedword>ENDDO
|
||||
|
||||
</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-function>fClose</SPAN><SPAN class=any1-symbol>( hFile )
|
||||
|
||||
oHTML:</SPAN><SPAN class=any1-variable>AddReplaceTag</SPAN><SPAN class=any1-symbol>( </SPAN><SPAN class=any1-string>"Functions"</SPAN><SPAN class=any1-symbol>, cTable )
|
||||
oHTML:</SPAN><SPAN class=any1-variable>Generate</SPAN><SPAN class=any1-symbol>()
|
||||
|
||||
</SPAN><SPAN class=any1-comment>// Uncomment the following if you don't have a Web Server to test
|
||||
</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-comment>// this sample
|
||||
|
||||
// oHTML:SaveToFile( "test.htm" )
|
||||
|
||||
</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-comment>// If the above is uncommented, you may comment this line:
|
||||
|
||||
</SPAN><SPAN class=any1-space> oHTML:</SPAN><SPAN class=any1-variable>ShowResult</SPAN><SPAN class=any1-symbol>()
|
||||
|
||||
</SPAN><SPAN class=any1-reservedword>RETURN</SPAN><SPAN class=any1-symbol>( NIL )
|
||||
|
||||
</SPAN><SPAN class=any1-reservedword>FUNCTION</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-variable>ParseString</SPAN><SPAN class=any1-symbol>( cString, cDelim, nRet )
|
||||
|
||||
</SPAN><SPAN class=any1-reservedword>LOCAL</SPAN><SPAN class=any1-space> cBuf, aElem, nPosFim, nSize, i
|
||||
|
||||
nSize := </SPAN><SPAN class=any1-function>len</SPAN><SPAN class=any1-symbol>( cString ) - </SPAN><SPAN class=any1-function>len</SPAN><SPAN class=any1-symbol>( </SPAN><SPAN class=any1-function>StrTran</SPAN><SPAN class=any1-symbol>( cString, cDelim, </SPAN><SPAN class=any1-string>''</SPAN><SPAN class=any1-space> ) ) + </SPAN><SPAN class=any1-number>1
|
||||
</SPAN><SPAN class=any1-space> aElem := </SPAN><SPAN class=any1-function>array</SPAN><SPAN class=any1-symbol>( nSize )
|
||||
|
||||
cBuf := cString
|
||||
i := </SPAN><SPAN class=any1-number>1
|
||||
</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-reservedword>FOR</SPAN><SPAN class=any1-space> i := </SPAN><SPAN class=any1-number>1</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-function>TO</SPAN><SPAN class=any1-space> nSize
|
||||
nPosFim := </SPAN><SPAN class=any1-function>at</SPAN><SPAN class=any1-symbol>( cDelim, cBuf )
|
||||
|
||||
</SPAN><SPAN class=any1-reservedword>IF</SPAN><SPAN class=any1-space> nPosFim > </SPAN><SPAN class=any1-number>0
|
||||
</SPAN><SPAN class=any1-space> aElem[i] := </SPAN><SPAN class=any1-function>substr</SPAN><SPAN class=any1-symbol>( cBuf, </SPAN><SPAN class=any1-number>1</SPAN><SPAN class=any1-symbol>, nPosFim - </SPAN><SPAN class=any1-number>1</SPAN><SPAN class=any1-space> )
|
||||
</SPAN><SPAN class=any1-reservedword>ELSE
|
||||
</SPAN><SPAN class=any1-space> aElem[i] := cBuf
|
||||
</SPAN><SPAN class=any1-reservedword>ENDIF
|
||||
|
||||
</SPAN><SPAN class=any1-space> cBuf := </SPAN><SPAN class=any1-function>substr</SPAN><SPAN class=any1-symbol>( cBuf, nPosFim + </SPAN><SPAN class=any1-number>1</SPAN><SPAN class=any1-symbol>, </SPAN><SPAN class=any1-function>len</SPAN><SPAN class=any1-symbol>( cBuf ) )
|
||||
|
||||
</SPAN><SPAN class=any1-reservedword>NEXT</SPAN><SPAN class=any1-space> i
|
||||
|
||||
</SPAN><SPAN class=any1-reservedword>RETURN</SPAN><SPAN class=any1-symbol>( aElem[ nRet ] )
|
||||
|
||||
</SPAN><SPAN class=any1-reservedword>FUNCTION</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-variable>Hex2Dec</SPAN><SPAN class=any1-symbol>( cHex )
|
||||
|
||||
</SPAN><SPAN class=any1-reservedword>LOCAL</SPAN><SPAN class=any1-space> aHex := { { </SPAN><SPAN class=any1-string>"0"</SPAN><SPAN class=any1-symbol>, </SPAN><SPAN class=any1-number>00</SPAN><SPAN class=any1-space> }, ;
|
||||
{ </SPAN><SPAN class=any1-string>"1"</SPAN><SPAN class=any1-symbol>, </SPAN><SPAN class=any1-number>01</SPAN><SPAN class=any1-space> }, ;
|
||||
{ </SPAN><SPAN class=any1-string>"2"</SPAN><SPAN class=any1-symbol>, </SPAN><SPAN class=any1-number>02</SPAN><SPAN class=any1-space> }, ;
|
||||
{ </SPAN><SPAN class=any1-string>"3"</SPAN><SPAN class=any1-symbol>, </SPAN><SPAN class=any1-number>03</SPAN><SPAN class=any1-space> }, ;
|
||||
{ </SPAN><SPAN class=any1-string>"4"</SPAN><SPAN class=any1-symbol>, </SPAN><SPAN class=any1-number>04</SPAN><SPAN class=any1-space> }, ;
|
||||
{ </SPAN><SPAN class=any1-string>"5"</SPAN><SPAN class=any1-symbol>, </SPAN><SPAN class=any1-number>05</SPAN><SPAN class=any1-space> }, ;
|
||||
{ </SPAN><SPAN class=any1-string>"6"</SPAN><SPAN class=any1-symbol>, </SPAN><SPAN class=any1-number>06</SPAN><SPAN class=any1-space> }, ;
|
||||
{ </SPAN><SPAN class=any1-string>"7"</SPAN><SPAN class=any1-symbol>, </SPAN><SPAN class=any1-number>07</SPAN><SPAN class=any1-space> }, ;
|
||||
{ </SPAN><SPAN class=any1-string>"8"</SPAN><SPAN class=any1-symbol>, </SPAN><SPAN class=any1-number>08</SPAN><SPAN class=any1-space> }, ;
|
||||
{ </SPAN><SPAN class=any1-string>"9"</SPAN><SPAN class=any1-symbol>, </SPAN><SPAN class=any1-number>09</SPAN><SPAN class=any1-space> }, ;
|
||||
{ </SPAN><SPAN class=any1-string>"A"</SPAN><SPAN class=any1-symbol>, </SPAN><SPAN class=any1-number>10</SPAN><SPAN class=any1-space> }, ;
|
||||
{ </SPAN><SPAN class=any1-string>"B"</SPAN><SPAN class=any1-symbol>, </SPAN><SPAN class=any1-number>11</SPAN><SPAN class=any1-space> }, ;
|
||||
{ </SPAN><SPAN class=any1-string>"C"</SPAN><SPAN class=any1-symbol>, </SPAN><SPAN class=any1-number>12</SPAN><SPAN class=any1-space> }, ;
|
||||
{ </SPAN><SPAN class=any1-string>"D"</SPAN><SPAN class=any1-symbol>, </SPAN><SPAN class=any1-number>13</SPAN><SPAN class=any1-space> }, ;
|
||||
{ </SPAN><SPAN class=any1-string>"E"</SPAN><SPAN class=any1-symbol>, </SPAN><SPAN class=any1-number>14</SPAN><SPAN class=any1-space> }, ;
|
||||
{ </SPAN><SPAN class=any1-string>"F"</SPAN><SPAN class=any1-symbol>, </SPAN><SPAN class=any1-number>15</SPAN><SPAN class=any1-space> } }
|
||||
</SPAN><SPAN class=any1-reservedword>LOCAL</SPAN><SPAN class=any1-space> nRet
|
||||
</SPAN><SPAN class=any1-reservedword>LOCAL</SPAN><SPAN class=any1-space> nRes
|
||||
|
||||
nRet := </SPAN><SPAN class=any1-function>ascan</SPAN><SPAN class=any1-symbol>( aHex, {| x | </SPAN><SPAN class=any1-function>upper</SPAN><SPAN class=any1-symbol>( x[</SPAN><SPAN class=any1-number>1</SPAN><SPAN class=any1-symbol>] ) = </SPAN><SPAN class=any1-function>upper</SPAN><SPAN class=any1-symbol>( </SPAN><SPAN class=any1-function>left</SPAN><SPAN class=any1-symbol>( cHex, </SPAN><SPAN class=any1-number>1</SPAN><SPAN class=any1-space> ) ) } )
|
||||
nRes := aHex[nRet, </SPAN><SPAN class=any1-number>2</SPAN><SPAN class=any1-symbol>] * </SPAN><SPAN class=any1-number>16
|
||||
</SPAN><SPAN class=any1-space> nRet := </SPAN><SPAN class=any1-function>ascan</SPAN><SPAN class=any1-symbol>( aHex, {| x | </SPAN><SPAN class=any1-function>upper</SPAN><SPAN class=any1-symbol>( x[</SPAN><SPAN class=any1-number>1</SPAN><SPAN class=any1-symbol>] ) = </SPAN><SPAN class=any1-function>upper</SPAN><SPAN class=any1-symbol>( </SPAN><SPAN class=any1-function>right</SPAN><SPAN class=any1-symbol>( cHex, </SPAN><SPAN class=any1-number>1</SPAN><SPAN class=any1-space> ) ) } )
|
||||
nRes += aHex[nRet, </SPAN><SPAN class=any1-number>2</SPAN><SPAN class=any1-symbol>]
|
||||
|
||||
</SPAN><SPAN class=any1-reservedword>RETURN</SPAN><SPAN class=any1-symbol>( nRes )
|
||||
|
||||
</SPAN><SPAN class=any1-comment>/*-------------------------------------------------------------------------*/
|
||||
|
||||
</SPAN><SPAN class=any1-reservedword>FUNCTION</SPAN><SPAN class=any1-space> THTML
|
||||
|
||||
</SPAN><SPAN class=any1-reservedword>STATIC</SPAN><SPAN class=any1-space> oClass
|
||||
|
||||
</SPAN><SPAN class=any1-reservedword>IF</SPAN><SPAN class=any1-space> oClass == NIL
|
||||
oClass = </SPAN><SPAN class=any1-variable>HBClass</SPAN><SPAN class=any1-symbol>():</SPAN><SPAN class=any1-variable>New</SPAN><SPAN class=any1-symbol>( </SPAN><SPAN class=any1-string>"THTML"</SPAN><SPAN class=any1-space> )
|
||||
|
||||
oClass:</SPAN><SPAN class=any1-variable>AddData</SPAN><SPAN class=any1-symbol>( </SPAN><SPAN class=any1-string>"cTitle"</SPAN><SPAN class=any1-space> ) </SPAN><SPAN class=any1-comment>// Page Title
|
||||
</SPAN><SPAN class=any1-space> oClass:</SPAN><SPAN class=any1-variable>AddData</SPAN><SPAN class=any1-symbol>( </SPAN><SPAN class=any1-string>"cBody"</SPAN><SPAN class=any1-space> ) </SPAN><SPAN class=any1-comment>// HTML Body Handler
|
||||
</SPAN><SPAN class=any1-space> oClass:</SPAN><SPAN class=any1-variable>AddData</SPAN><SPAN class=any1-symbol>( </SPAN><SPAN class=any1-string>"cBGColor"</SPAN><SPAN class=any1-space> ) </SPAN><SPAN class=any1-comment>// Background Color
|
||||
</SPAN><SPAN class=any1-space> oClass:</SPAN><SPAN class=any1-variable>AddData</SPAN><SPAN class=any1-symbol>( </SPAN><SPAN class=any1-string>"cLinkColor"</SPAN><SPAN class=any1-space> ) </SPAN><SPAN class=any1-comment>// Link Color
|
||||
</SPAN><SPAN class=any1-space> oClass:</SPAN><SPAN class=any1-variable>AddData</SPAN><SPAN class=any1-symbol>( </SPAN><SPAN class=any1-string>"cvLinkColor"</SPAN><SPAN class=any1-space> ) </SPAN><SPAN class=any1-comment>// Visited Link Color
|
||||
</SPAN><SPAN class=any1-space> oClass:</SPAN><SPAN class=any1-variable>AddData</SPAN><SPAN class=any1-symbol>( </SPAN><SPAN class=any1-string>"cContent"</SPAN><SPAN class=any1-space> ) </SPAN><SPAN class=any1-comment>// Page Content Handler
|
||||
|
||||
</SPAN><SPAN class=any1-space> oClass:</SPAN><SPAN class=any1-variable>AddData</SPAN><SPAN class=any1-symbol>( </SPAN><SPAN class=any1-string>"aCGIContents"</SPAN><SPAN class=any1-space> )
|
||||
oClass:</SPAN><SPAN class=any1-variable>AddData</SPAN><SPAN class=any1-symbol>( </SPAN><SPAN class=any1-string>"aQueryFields"</SPAN><SPAN class=any1-space> )
|
||||
oClass:</SPAN><SPAN class=any1-variable>AddData</SPAN><SPAN class=any1-symbol>( </SPAN><SPAN class=any1-string>"cHTMLFile"</SPAN><SPAN class=any1-space> )
|
||||
oClass:</SPAN><SPAN class=any1-variable>AddData</SPAN><SPAN class=any1-symbol>( </SPAN><SPAN class=any1-string>"aReplaceTags"</SPAN><SPAN class=any1-space> )
|
||||
|
||||
oClass:</SPAN><SPAN class=any1-variable>AddMethod</SPAN><SPAN class=any1-symbol>( </SPAN><SPAN class=any1-string>"New"</SPAN><SPAN class=any1-symbol>, @</SPAN><SPAN class=any1-variable>New</SPAN><SPAN class=any1-symbol>() ) </SPAN><SPAN class=any1-comment>// New Method
|
||||
</SPAN><SPAN class=any1-space> oClass:</SPAN><SPAN class=any1-variable>AddMethod</SPAN><SPAN class=any1-symbol>( </SPAN><SPAN class=any1-string>"SetTitle"</SPAN><SPAN class=any1-symbol>, @</SPAN><SPAN class=any1-variable>SetTitle</SPAN><SPAN class=any1-symbol>() ) </SPAN><SPAN class=any1-comment>// Set Page Title
|
||||
</SPAN><SPAN class=any1-space> oClass:</SPAN><SPAN class=any1-variable>AddMethod</SPAN><SPAN class=any1-symbol>( </SPAN><SPAN class=any1-string>"AddHead"</SPAN><SPAN class=any1-symbol>, @</SPAN><SPAN class=any1-variable>AddHead</SPAN><SPAN class=any1-symbol>() ) </SPAN><SPAN class=any1-comment>// Add <H1> Header
|
||||
</SPAN><SPAN class=any1-space> oClass:</SPAN><SPAN class=any1-variable>AddMethod</SPAN><SPAN class=any1-symbol>( </SPAN><SPAN class=any1-string>"AddLink"</SPAN><SPAN class=any1-symbol>, @</SPAN><SPAN class=any1-variable>AddLink</SPAN><SPAN class=any1-symbol>() ) </SPAN><SPAN class=any1-comment>// Add Hyperlink
|
||||
</SPAN><SPAN class=any1-space> oClass:</SPAN><SPAN class=any1-variable>AddMethod</SPAN><SPAN class=any1-symbol>( </SPAN><SPAN class=any1-string>"AddPara"</SPAN><SPAN class=any1-symbol>, @</SPAN><SPAN class=any1-variable>AddPara</SPAN><SPAN class=any1-symbol>() ) </SPAN><SPAN class=any1-comment>// Add Paragraph
|
||||
</SPAN><SPAN class=any1-space> oClass:</SPAN><SPAN class=any1-variable>AddMethod</SPAN><SPAN class=any1-symbol>( </SPAN><SPAN class=any1-string>"SaveToFile"</SPAN><SPAN class=any1-symbol>, @</SPAN><SPAN class=any1-variable>SaveToFile</SPAN><SPAN class=any1-symbol>() ) </SPAN><SPAN class=any1-comment>// Saves Content to File
|
||||
</SPAN><SPAN class=any1-space> oClass:</SPAN><SPAN class=any1-variable>AddMethod</SPAN><SPAN class=any1-symbol>( </SPAN><SPAN class=any1-string>"ShowResult"</SPAN><SPAN class=any1-symbol>, @</SPAN><SPAN class=any1-variable>ShowResult</SPAN><SPAN class=any1-symbol>() ) </SPAN><SPAN class=any1-comment>// Show Result - SEE Fcn
|
||||
</SPAN><SPAN class=any1-space> oClass:</SPAN><SPAN class=any1-variable>AddMethod</SPAN><SPAN class=any1-symbol>( </SPAN><SPAN class=any1-string>"Generate"</SPAN><SPAN class=any1-symbol>, @</SPAN><SPAN class=any1-variable>Generate</SPAN><SPAN class=any1-symbol>() ) </SPAN><SPAN class=any1-comment>// Generate HTML
|
||||
</SPAN><SPAN class=any1-space> oClass:</SPAN><SPAN class=any1-variable>AddMethod</SPAN><SPAN class=any1-symbol>( </SPAN><SPAN class=any1-string>"SetHTMLFile"</SPAN><SPAN class=any1-symbol>,@</SPAN><SPAN class=any1-variable>SetHTMLFile</SPAN><SPAN class=any1-symbol>() ) </SPAN><SPAN class=any1-comment>// Sets source HTML file
|
||||
|
||||
</SPAN><SPAN class=any1-space> oClass:</SPAN><SPAN class=any1-variable>AddMethod</SPAN><SPAN class=any1-symbol>( </SPAN><SPAN class=any1-string>"ProcessCGI"</SPAN><SPAN class=any1-symbol>, @</SPAN><SPAN class=any1-variable>ProcessCGI</SPAN><SPAN class=any1-symbol>() )
|
||||
oClass:</SPAN><SPAN class=any1-variable>AddMethod</SPAN><SPAN class=any1-symbol>( </SPAN><SPAN class=any1-string>"GetCGIParam"</SPAN><SPAN class=any1-symbol>, @</SPAN><SPAN class=any1-variable>GetCGIParam</SPAN><SPAN class=any1-symbol>() )
|
||||
oClass:</SPAN><SPAN class=any1-variable>AddMethod</SPAN><SPAN class=any1-symbol>( </SPAN><SPAN class=any1-string>"QueryFields"</SPAN><SPAN class=any1-symbol>, @</SPAN><SPAN class=any1-variable>QueryFields</SPAN><SPAN class=any1-symbol>() )
|
||||
oClass:</SPAN><SPAN class=any1-variable>AddMethod</SPAN><SPAN class=any1-symbol>( </SPAN><SPAN class=any1-string>"AddReplaceTag"</SPAN><SPAN class=any1-symbol>, @</SPAN><SPAN class=any1-variable>AddReplaceTag</SPAN><SPAN class=any1-symbol>() )
|
||||
|
||||
oClass:</SPAN><SPAN class=any1-function>Create</SPAN><SPAN class=any1-symbol>()
|
||||
|
||||
</SPAN><SPAN class=any1-reservedword>ENDIF
|
||||
|
||||
</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-reservedword>RETURN</SPAN><SPAN class=any1-symbol>( oClass:</SPAN><SPAN class=any1-variable>Instance</SPAN><SPAN class=any1-symbol>() )
|
||||
|
||||
</SPAN><SPAN class=any1-reservedword>STATIC</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-reservedword>FUNCTION</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-variable>New</SPAN><SPAN class=any1-symbol>()
|
||||
|
||||
</SPAN><SPAN class=any1-reservedword>LOCAL</SPAN><SPAN class=any1-space> Self := </SPAN><SPAN class=any1-variable>QSelf</SPAN><SPAN class=any1-symbol>()
|
||||
|
||||
::cTitle := </SPAN><SPAN class=any1-string>"Untitled"
|
||||
</SPAN><SPAN class=any1-space> ::cBGColor := </SPAN><SPAN class=any1-string>"#FFFFFF"
|
||||
</SPAN><SPAN class=any1-space> ::cLinkColor := </SPAN><SPAN class=any1-string>"#0000FF"
|
||||
</SPAN><SPAN class=any1-space> ::cvLinkColor := </SPAN><SPAN class=any1-string>"#FF0000"
|
||||
</SPAN><SPAN class=any1-space> ::cContent := </SPAN><SPAN class=any1-string>""
|
||||
</SPAN><SPAN class=any1-space> ::cBody := </SPAN><SPAN class=any1-string>""
|
||||
</SPAN><SPAN class=any1-space> ::aCGIContents := {}
|
||||
::aQueryFields := {}
|
||||
::aReplaceTags := {}
|
||||
::cHTMLFile := </SPAN><SPAN class=any1-string>""
|
||||
|
||||
</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-reservedword>RETURN</SPAN><SPAN class=any1-symbol>( Self )
|
||||
|
||||
</SPAN><SPAN class=any1-reservedword>STATIC</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-reservedword>FUNCTION</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-variable>SetTitle</SPAN><SPAN class=any1-symbol>( cTitle )
|
||||
|
||||
</SPAN><SPAN class=any1-reservedword>LOCAL</SPAN><SPAN class=any1-space> Self := </SPAN><SPAN class=any1-variable>QSelf</SPAN><SPAN class=any1-symbol>()
|
||||
|
||||
::cTitle := cTitle
|
||||
|
||||
</SPAN><SPAN class=any1-reservedword>RETURN</SPAN><SPAN class=any1-symbol>( Self )
|
||||
|
||||
</SPAN><SPAN class=any1-reservedword>STATIC</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-reservedword>FUNCTION</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-variable>AddLink</SPAN><SPAN class=any1-symbol>( cLinkTo, cLinkName )
|
||||
|
||||
</SPAN><SPAN class=any1-reservedword>LOCAL</SPAN><SPAN class=any1-space> Self := </SPAN><SPAN class=any1-variable>QSelf</SPAN><SPAN class=any1-symbol>()
|
||||
|
||||
::cBody := ::cBody + ;
|
||||
</SPAN><SPAN class=any1-string>"<A HREF='"</SPAN><SPAN class=any1-space> + cLinkTo + </SPAN><SPAN class=any1-string>"'>"</SPAN><SPAN class=any1-space> + cLinkName + </SPAN><SPAN class=any1-string>"</A>"
|
||||
|
||||
</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-reservedword>RETURN</SPAN><SPAN class=any1-symbol>( Self )
|
||||
|
||||
</SPAN><SPAN class=any1-reservedword>STATIC</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-reservedword>FUNCTION</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-variable>AddHead</SPAN><SPAN class=any1-symbol>( cDescr )
|
||||
|
||||
</SPAN><SPAN class=any1-reservedword>LOCAL</SPAN><SPAN class=any1-space> Self := </SPAN><SPAN class=any1-variable>QSelf</SPAN><SPAN class=any1-symbol>()
|
||||
|
||||
</SPAN><SPAN class=any1-comment>// Why this doesn't work?
|
||||
</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-comment>// ::cBody += ...
|
||||
</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-comment>// ???
|
||||
|
||||
</SPAN><SPAN class=any1-space> ::cBody := ::cBody + ;
|
||||
</SPAN><SPAN class=any1-string>"<H1>"</SPAN><SPAN class=any1-space> + cDescr + </SPAN><SPAN class=any1-string>"</H1>"
|
||||
|
||||
</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-reservedword>RETURN</SPAN><SPAN class=any1-symbol>( NIL )
|
||||
|
||||
</SPAN><SPAN class=any1-reservedword>STATIC</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-reservedword>FUNCTION</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-variable>AddPara</SPAN><SPAN class=any1-symbol>( cPara, cAlign )
|
||||
|
||||
</SPAN><SPAN class=any1-reservedword>LOCAL</SPAN><SPAN class=any1-space> Self := </SPAN><SPAN class=any1-variable>QSelf</SPAN><SPAN class=any1-symbol>()
|
||||
|
||||
::cBody := ::cBody + ;
|
||||
</SPAN><SPAN class=any1-string>"<P ALIGN='"</SPAN><SPAN class=any1-space> + cAlign + </SPAN><SPAN class=any1-string>"'>"</SPAN><SPAN class=any1-space> + </SPAN><SPAN class=any1-variable>hb_eol</SPAN><SPAN class=any1-symbol>() + ;
|
||||
cPara + </SPAN><SPAN class=any1-variable>hb_eol</SPAN><SPAN class=any1-symbol>() + ;
|
||||
</SPAN><SPAN class=any1-string>"</P>"
|
||||
|
||||
</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-reservedword>RETURN</SPAN><SPAN class=any1-symbol>( Self )
|
||||
|
||||
</SPAN><SPAN class=any1-reservedword>STATIC</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-reservedword>FUNCTION</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-variable>Generate</SPAN><SPAN class=any1-symbol>()
|
||||
|
||||
</SPAN><SPAN class=any1-reservedword>LOCAL</SPAN><SPAN class=any1-space> Self := </SPAN><SPAN class=any1-variable>QSelf</SPAN><SPAN class=any1-symbol>()
|
||||
</SPAN><SPAN class=any1-reservedword>LOCAL</SPAN><SPAN class=any1-space> cFile, i, hFile, nPos, cRes := </SPAN><SPAN class=any1-string>""
|
||||
</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-reservedword>LOCAL</SPAN><SPAN class=any1-space> lFlag := </SPAN><SPAN class=any1-activedot>.f.
|
||||
|
||||
</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-comment>// Is this a meta file or hand generated script?
|
||||
</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-reservedword>IF</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-function>empty</SPAN><SPAN class=any1-symbol>( ::cHTMLFile )
|
||||
::cContent := ;
|
||||
</SPAN><SPAN class=any1-string>"<HTML><HEAD>"</SPAN><SPAN class=any1-space> + </SPAN><SPAN class=any1-variable>hb_eol</SPAN><SPAN class=any1-symbol>() + ;
|
||||
</SPAN><SPAN class=any1-string>"<TITLE>"</SPAN><SPAN class=any1-space> + ::cTitle + </SPAN><SPAN class=any1-string>"</TITLE>"</SPAN><SPAN class=any1-space> + </SPAN><SPAN class=any1-variable>hb_eol</SPAN><SPAN class=any1-symbol>() + ;
|
||||
</SPAN><SPAN class=any1-string>"<BODY link='"</SPAN><SPAN class=any1-space> + ::cLinkColor + </SPAN><SPAN class=any1-string>"' "</SPAN><SPAN class=any1-space> + ;
|
||||
</SPAN><SPAN class=any1-string>"vlink='"</SPAN><SPAN class=any1-space> + ::cvLinkColor + </SPAN><SPAN class=any1-string>"'>"</SPAN><SPAN class=any1-space> + + </SPAN><SPAN class=any1-variable>hb_eol</SPAN><SPAN class=any1-symbol>() + ;
|
||||
::cBody + </SPAN><SPAN class=any1-variable>hb_eol</SPAN><SPAN class=any1-symbol>() + ;
|
||||
</SPAN><SPAN class=any1-string>"</BODY></HTML>"
|
||||
</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-reservedword>ELSE
|
||||
</SPAN><SPAN class=any1-space> ::cContent := </SPAN><SPAN class=any1-string>""
|
||||
|
||||
</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-comment>// Does cHTMLFile exists?
|
||||
</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-reservedword>IF</SPAN><SPAN class=any1-space> !</SPAN><SPAN class=any1-function>File</SPAN><SPAN class=any1-symbol>( ::cHTMLFile )
|
||||
::cContent := </SPAN><SPAN class=any1-string>"<H1>Server Error</H1><P><I>No such file: "</SPAN><SPAN class=any1-space> + ;
|
||||
::cHTMLFile
|
||||
</SPAN><SPAN class=any1-reservedword>ELSE
|
||||
</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-comment>// Read from file
|
||||
</SPAN><SPAN class=any1-space> hFile := </SPAN><SPAN class=any1-function>fOpen</SPAN><SPAN class=any1-symbol>( ::cHTMLFile, </SPAN><SPAN class=any1-number>0</SPAN><SPAN class=any1-space> )
|
||||
cFile := </SPAN><SPAN class=any1-function>space</SPAN><SPAN class=any1-symbol>( IF_BUFFER )
|
||||
</SPAN><SPAN class=any1-reservedword>DO</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-reservedword>WHILE</SPAN><SPAN class=any1-space> (nPos := </SPAN><SPAN class=any1-function>fRead</SPAN><SPAN class=any1-symbol>( hFile, @cFile, IF_BUFFER )) > </SPAN><SPAN class=any1-number>0
|
||||
|
||||
</SPAN><SPAN class=any1-space> cFile := </SPAN><SPAN class=any1-function>left</SPAN><SPAN class=any1-symbol>( cFile, nPos )
|
||||
cRes += cFile
|
||||
cFile := </SPAN><SPAN class=any1-function>space</SPAN><SPAN class=any1-symbol>( IF_BUFFER )
|
||||
|
||||
</SPAN><SPAN class=any1-reservedword>ENDDO
|
||||
|
||||
</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-function>fClose</SPAN><SPAN class=any1-symbol>( hFile )
|
||||
|
||||
</SPAN><SPAN class=any1-comment>// Replace matched tags
|
||||
</SPAN><SPAN class=any1-space> i := </SPAN><SPAN class=any1-number>1
|
||||
</SPAN><SPAN class=any1-space> ::cContent := cRes
|
||||
</SPAN><SPAN class=any1-comment>/* TODO: Replace this DO WHILE with FOR..NEXT */
|
||||
</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-reservedword>DO</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-reservedword>WHILE</SPAN><SPAN class=any1-space> i <= </SPAN><SPAN class=any1-function>len</SPAN><SPAN class=any1-symbol>( ::aReplaceTags )
|
||||
::cContent := </SPAN><SPAN class=any1-function>strtran</SPAN><SPAN class=any1-symbol>( ::cContent, ;
|
||||
</SPAN><SPAN class=any1-string>"<#"</SPAN><SPAN class=any1-space> + ::aReplaceTags[i, </SPAN><SPAN class=any1-number>1</SPAN><SPAN class=any1-symbol>] + </SPAN><SPAN class=any1-string>">"</SPAN><SPAN class=any1-symbol>, ::aReplaceTags[i, </SPAN><SPAN class=any1-number>2</SPAN><SPAN class=any1-symbol>] )
|
||||
i++
|
||||
</SPAN><SPAN class=any1-reservedword>ENDDO
|
||||
|
||||
</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-comment>/* TODO: Clear remaining (not matched) tags */
|
||||
</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-comment>/*
|
||||
cRes := ""
|
||||
FOR i := 1 TO Len( ::cContent )
|
||||
IF SubStr( ::cContent, i, 1 ) == "<" .AND. ;
|
||||
SubStr( ::cContent, i + 1, 1 ) == "#"
|
||||
lFlag := .t.
|
||||
ELSEIF SubStr( ::cContent, i, 1 ) == ">" .AND. lFlag
|
||||
lFlag := .f.
|
||||
ELSEIF ! lFlag
|
||||
cRes += SubStr( ::cContent, i, 1 )
|
||||
ENDIF
|
||||
NEXT
|
||||
|
||||
::cContent := cRes
|
||||
*/
|
||||
|
||||
</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-reservedword>ENDIF
|
||||
</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-reservedword>ENDIF
|
||||
|
||||
</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-reservedword>RETURN</SPAN><SPAN class=any1-symbol>( Self )
|
||||
|
||||
</SPAN><SPAN class=any1-reservedword>STATIC</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-reservedword>FUNCTION</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-variable>ShowResult</SPAN><SPAN class=any1-symbol>()
|
||||
|
||||
</SPAN><SPAN class=any1-reservedword>LOCAL</SPAN><SPAN class=any1-space> Self := </SPAN><SPAN class=any1-variable>QSelf</SPAN><SPAN class=any1-symbol>()
|
||||
|
||||
</SPAN><SPAN class=any1-function>OutStd</SPAN><SPAN class=any1-symbol>( ;
|
||||
</SPAN><SPAN class=any1-string>"HTTP/1.0 200 OK"</SPAN><SPAN class=any1-space> + </SPAN><SPAN class=any1-variable>hb_eol</SPAN><SPAN class=any1-symbol>() + ;
|
||||
</SPAN><SPAN class=any1-string>"CONTENT-TYPE: TEXT/HTML"</SPAN><SPAN class=any1-space> + </SPAN><SPAN class=any1-variable>hb_eol</SPAN><SPAN class=any1-symbol>() + </SPAN><SPAN class=any1-variable>hb_eol</SPAN><SPAN class=any1-symbol>() + ;
|
||||
::cContent )
|
||||
|
||||
</SPAN><SPAN class=any1-reservedword>RETURN</SPAN><SPAN class=any1-symbol>( Self )
|
||||
|
||||
</SPAN><SPAN class=any1-reservedword>STATIC</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-reservedword>FUNCTION</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-variable>SaveToFile</SPAN><SPAN class=any1-symbol>( cFile )
|
||||
|
||||
</SPAN><SPAN class=any1-reservedword>LOCAL</SPAN><SPAN class=any1-space> Self := </SPAN><SPAN class=any1-variable>QSelf</SPAN><SPAN class=any1-symbol>()
|
||||
</SPAN><SPAN class=any1-reservedword>LOCAL</SPAN><SPAN class=any1-space> hFile := </SPAN><SPAN class=any1-function>fCreate</SPAN><SPAN class=any1-symbol>( cFile )
|
||||
|
||||
</SPAN><SPAN class=any1-function>fWrite</SPAN><SPAN class=any1-symbol>( hFile, ::cContent )
|
||||
</SPAN><SPAN class=any1-function>fClose</SPAN><SPAN class=any1-symbol>( hFile )
|
||||
|
||||
</SPAN><SPAN class=any1-reservedword>RETURN</SPAN><SPAN class=any1-symbol>( Self )
|
||||
|
||||
</SPAN><SPAN class=any1-reservedword>STATIC</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-reservedword>FUNCTION</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-variable>ProcessCGI</SPAN><SPAN class=any1-symbol>()
|
||||
|
||||
</SPAN><SPAN class=any1-reservedword>LOCAL</SPAN><SPAN class=any1-space> Self := </SPAN><SPAN class=any1-variable>QSelf</SPAN><SPAN class=any1-symbol>()
|
||||
</SPAN><SPAN class=any1-reservedword>LOCAL</SPAN><SPAN class=any1-space> cQuery := </SPAN><SPAN class=any1-string>""
|
||||
</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-reservedword>LOCAL</SPAN><SPAN class=any1-space> cBuff := </SPAN><SPAN class=any1-string>""
|
||||
</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-reservedword>LOCAL</SPAN><SPAN class=any1-space> nBuff := </SPAN><SPAN class=any1-number>0
|
||||
</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-reservedword>LOCAL</SPAN><SPAN class=any1-space> i
|
||||
|
||||
</SPAN><SPAN class=any1-reservedword>IF</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-function>empty</SPAN><SPAN class=any1-symbol>( ::aCGIContents )
|
||||
::aCGIContents := { ;
|
||||
</SPAN><SPAN class=any1-function>GetEnv</SPAN><SPAN class=any1-symbol>( </SPAN><SPAN class=any1-string>"SERVER_SOFTWARE"</SPAN><SPAN class=any1-space> ), ;
|
||||
</SPAN><SPAN class=any1-function>GetEnv</SPAN><SPAN class=any1-symbol>( </SPAN><SPAN class=any1-string>"SERVER_NAME"</SPAN><SPAN class=any1-space> ), ;
|
||||
</SPAN><SPAN class=any1-function>GetEnv</SPAN><SPAN class=any1-symbol>( </SPAN><SPAN class=any1-string>"GATEWAY_INTERFACE"</SPAN><SPAN class=any1-space> ), ;
|
||||
</SPAN><SPAN class=any1-function>GetEnv</SPAN><SPAN class=any1-symbol>( </SPAN><SPAN class=any1-string>"SERVER_PROTOCOL"</SPAN><SPAN class=any1-space> ), ;
|
||||
</SPAN><SPAN class=any1-function>GetEnv</SPAN><SPAN class=any1-symbol>( </SPAN><SPAN class=any1-string>"SERVER_PORT"</SPAN><SPAN class=any1-space> ), ;
|
||||
</SPAN><SPAN class=any1-function>GetEnv</SPAN><SPAN class=any1-symbol>( </SPAN><SPAN class=any1-string>"REQUEST_METHOD"</SPAN><SPAN class=any1-space> ), ;
|
||||
</SPAN><SPAN class=any1-function>GetEnv</SPAN><SPAN class=any1-symbol>( </SPAN><SPAN class=any1-string>"HTTP_ACCEPT"</SPAN><SPAN class=any1-space> ), ;
|
||||
</SPAN><SPAN class=any1-function>GetEnv</SPAN><SPAN class=any1-symbol>( </SPAN><SPAN class=any1-string>"HTTP_USER_AGENT"</SPAN><SPAN class=any1-space> ), ;
|
||||
</SPAN><SPAN class=any1-function>GetEnv</SPAN><SPAN class=any1-symbol>( </SPAN><SPAN class=any1-string>"HTTP_REFERER"</SPAN><SPAN class=any1-space> ), ;
|
||||
</SPAN><SPAN class=any1-function>GetEnv</SPAN><SPAN class=any1-symbol>( </SPAN><SPAN class=any1-string>"PATH_INFO"</SPAN><SPAN class=any1-space> ), ;
|
||||
</SPAN><SPAN class=any1-function>GetEnv</SPAN><SPAN class=any1-symbol>( </SPAN><SPAN class=any1-string>"PATH_TRANSLATED"</SPAN><SPAN class=any1-space> ), ;
|
||||
</SPAN><SPAN class=any1-function>GetEnv</SPAN><SPAN class=any1-symbol>( </SPAN><SPAN class=any1-string>"SCRIPT_NAME"</SPAN><SPAN class=any1-space> ), ;
|
||||
</SPAN><SPAN class=any1-function>GetEnv</SPAN><SPAN class=any1-symbol>( </SPAN><SPAN class=any1-string>"QUERY_STRING"</SPAN><SPAN class=any1-space> ), ;
|
||||
</SPAN><SPAN class=any1-function>GetEnv</SPAN><SPAN class=any1-symbol>( </SPAN><SPAN class=any1-string>"REMOTE_HOST"</SPAN><SPAN class=any1-space> ), ;
|
||||
</SPAN><SPAN class=any1-function>GetEnv</SPAN><SPAN class=any1-symbol>( </SPAN><SPAN class=any1-string>"REMOTE_ADDR"</SPAN><SPAN class=any1-space> ), ;
|
||||
</SPAN><SPAN class=any1-function>GetEnv</SPAN><SPAN class=any1-symbol>( </SPAN><SPAN class=any1-string>"REMOTE_USER"</SPAN><SPAN class=any1-space> ), ;
|
||||
</SPAN><SPAN class=any1-function>GetEnv</SPAN><SPAN class=any1-symbol>( </SPAN><SPAN class=any1-string>"AUTH_TYPE"</SPAN><SPAN class=any1-space> ), ;
|
||||
</SPAN><SPAN class=any1-function>GetEnv</SPAN><SPAN class=any1-symbol>( </SPAN><SPAN class=any1-string>"CONTENT_TYPE"</SPAN><SPAN class=any1-space> ), ;
|
||||
</SPAN><SPAN class=any1-function>GetEnv</SPAN><SPAN class=any1-symbol>( </SPAN><SPAN class=any1-string>"CONTENT_LENGTH"</SPAN><SPAN class=any1-space> ), ;
|
||||
</SPAN><SPAN class=any1-function>GetEnv</SPAN><SPAN class=any1-symbol>( </SPAN><SPAN class=any1-string>"ANNOTATION_SERVER"</SPAN><SPAN class=any1-space> ) ;
|
||||
}
|
||||
|
||||
cQuery := ::</SPAN><SPAN class=any1-variable>GetCGIParam</SPAN><SPAN class=any1-symbol>( CGI_QUERY_STRING )
|
||||
|
||||
</SPAN><SPAN class=any1-reservedword>IF</SPAN><SPAN class=any1-space> !</SPAN><SPAN class=any1-function>empty</SPAN><SPAN class=any1-symbol>( cQuery )
|
||||
|
||||
::aQueryFields := {}
|
||||
|
||||
</SPAN><SPAN class=any1-reservedword>FOR</SPAN><SPAN class=any1-space> i := </SPAN><SPAN class=any1-number>1</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-function>TO</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-function>len</SPAN><SPAN class=any1-symbol>( cQuery ) + </SPAN><SPAN class=any1-number>1
|
||||
|
||||
</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-reservedword>IF</SPAN><SPAN class=any1-space> i > </SPAN><SPAN class=any1-function>len</SPAN><SPAN class=any1-symbol>( cQuery ) .OR. </SPAN><SPAN class=any1-function>substr</SPAN><SPAN class=any1-symbol>( cQuery, i, </SPAN><SPAN class=any1-number>1</SPAN><SPAN class=any1-space> ) == </SPAN><SPAN class=any1-string>"&"
|
||||
|
||||
</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-function>aadd</SPAN><SPAN class=any1-symbol>( ::aQueryFields, ;
|
||||
{ </SPAN><SPAN class=any1-function>substr</SPAN><SPAN class=any1-symbol>( cBuff, </SPAN><SPAN class=any1-number>1</SPAN><SPAN class=any1-symbol>, </SPAN><SPAN class=any1-function>at</SPAN><SPAN class=any1-symbol>( </SPAN><SPAN class=any1-string>"="</SPAN><SPAN class=any1-symbol>, cBuff ) - </SPAN><SPAN class=any1-number>1</SPAN><SPAN class=any1-space> ), ;
|
||||
</SPAN><SPAN class=any1-function>strtran</SPAN><SPAN class=any1-symbol>( </SPAN><SPAN class=any1-function>substr</SPAN><SPAN class=any1-symbol>( cBuff, </SPAN><SPAN class=any1-function>at</SPAN><SPAN class=any1-symbol>( </SPAN><SPAN class=any1-string>"="</SPAN><SPAN class=any1-symbol>, cBuff ) + </SPAN><SPAN class=any1-number>1</SPAN><SPAN class=any1-symbol>, ;
|
||||
</SPAN><SPAN class=any1-function>len</SPAN><SPAN class=any1-symbol>( cBuff ) - </SPAN><SPAN class=any1-function>at</SPAN><SPAN class=any1-symbol>( </SPAN><SPAN class=any1-string>"="</SPAN><SPAN class=any1-symbol>, cBuff ) + </SPAN><SPAN class=any1-number>1</SPAN><SPAN class=any1-space> ), </SPAN><SPAN class=any1-string>"+"</SPAN><SPAN class=any1-symbol>, </SPAN><SPAN class=any1-string>" "</SPAN><SPAN class=any1-space> ) } )
|
||||
cBuff := </SPAN><SPAN class=any1-string>""
|
||||
</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-reservedword>ELSE
|
||||
</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-reservedword>IF</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-function>substr</SPAN><SPAN class=any1-symbol>( cQuery, i, </SPAN><SPAN class=any1-number>1</SPAN><SPAN class=any1-space> ) = </SPAN><SPAN class=any1-string>"%"
|
||||
</SPAN><SPAN class=any1-space> cBuff += </SPAN><SPAN class=any1-function>chr</SPAN><SPAN class=any1-symbol>( </SPAN><SPAN class=any1-variable>Hex2Dec</SPAN><SPAN class=any1-symbol>( </SPAN><SPAN class=any1-function>substr</SPAN><SPAN class=any1-symbol>( cQuery, i + </SPAN><SPAN class=any1-number>1</SPAN><SPAN class=any1-symbol>, </SPAN><SPAN class=any1-number>2</SPAN><SPAN class=any1-space> ) ) )
|
||||
nBuff := </SPAN><SPAN class=any1-number>3
|
||||
</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-reservedword>ENDIF
|
||||
|
||||
</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-reservedword>IF</SPAN><SPAN class=any1-space> nBuff = </SPAN><SPAN class=any1-number>0
|
||||
</SPAN><SPAN class=any1-space> cBuff += </SPAN><SPAN class=any1-function>substr</SPAN><SPAN class=any1-symbol>( cQuery, i, </SPAN><SPAN class=any1-number>1</SPAN><SPAN class=any1-space> )
|
||||
</SPAN><SPAN class=any1-reservedword>ELSE
|
||||
</SPAN><SPAN class=any1-space> nBuff--
|
||||
</SPAN><SPAN class=any1-reservedword>ENDIF
|
||||
</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-reservedword>ENDIF
|
||||
|
||||
</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-reservedword>NEXT
|
||||
|
||||
</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-reservedword>ENDIF
|
||||
|
||||
</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-reservedword>ENDIF
|
||||
|
||||
</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-reservedword>RETURN</SPAN><SPAN class=any1-symbol>( Self )
|
||||
|
||||
</SPAN><SPAN class=any1-reservedword>STATIC</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-reservedword>FUNCTION</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-variable>GetCGIParam</SPAN><SPAN class=any1-symbol>( nParam )
|
||||
|
||||
</SPAN><SPAN class=any1-reservedword>LOCAL</SPAN><SPAN class=any1-space> Self := </SPAN><SPAN class=any1-variable>QSelf</SPAN><SPAN class=any1-symbol>()
|
||||
|
||||
::</SPAN><SPAN class=any1-variable>ProcessCGI</SPAN><SPAN class=any1-symbol>()
|
||||
|
||||
</SPAN><SPAN class=any1-reservedword>IF</SPAN><SPAN class=any1-space> nParam > </SPAN><SPAN class=any1-number>20</SPAN><SPAN class=any1-space> .OR. nParam < </SPAN><SPAN class=any1-number>1
|
||||
</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-function>outerr</SPAN><SPAN class=any1-symbol>( </SPAN><SPAN class=any1-string>"Invalid CGI parameter"</SPAN><SPAN class=any1-space> )
|
||||
</SPAN><SPAN class=any1-reservedword>RETURN</SPAN><SPAN class=any1-symbol>( NIL )
|
||||
</SPAN><SPAN class=any1-reservedword>ENDIF
|
||||
|
||||
</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-reservedword>RETURN</SPAN><SPAN class=any1-symbol>( ::aCGIContents[nParam] )
|
||||
|
||||
</SPAN><SPAN class=any1-reservedword>STATIC</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-reservedword>FUNCTION</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-variable>QueryFields</SPAN><SPAN class=any1-symbol>( cQueryName )
|
||||
|
||||
</SPAN><SPAN class=any1-reservedword>LOCAL</SPAN><SPAN class=any1-space> Self := </SPAN><SPAN class=any1-variable>QSelf</SPAN><SPAN class=any1-symbol>()
|
||||
</SPAN><SPAN class=any1-reservedword>LOCAL</SPAN><SPAN class=any1-space> cRet := </SPAN><SPAN class=any1-string>""
|
||||
</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-reservedword>LOCAL</SPAN><SPAN class=any1-space> nRet
|
||||
|
||||
::</SPAN><SPAN class=any1-variable>ProcessCGI</SPAN><SPAN class=any1-symbol>()
|
||||
|
||||
nRet := </SPAN><SPAN class=any1-function>aScan</SPAN><SPAN class=any1-symbol>( ::aQueryFields, ;
|
||||
{| x | </SPAN><SPAN class=any1-function>upper</SPAN><SPAN class=any1-symbol>( x[</SPAN><SPAN class=any1-number>1</SPAN><SPAN class=any1-symbol>] ) = </SPAN><SPAN class=any1-function>upper</SPAN><SPAN class=any1-symbol>( cQueryName ) } )
|
||||
|
||||
</SPAN><SPAN class=any1-reservedword>IF</SPAN><SPAN class=any1-space> nRet > </SPAN><SPAN class=any1-number>0
|
||||
</SPAN><SPAN class=any1-space> cRet := ::aQueryFields[nRet, </SPAN><SPAN class=any1-number>2</SPAN><SPAN class=any1-symbol>]
|
||||
</SPAN><SPAN class=any1-reservedword>ENDIF
|
||||
|
||||
</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-reservedword>RETURN</SPAN><SPAN class=any1-symbol>( cRet )
|
||||
|
||||
</SPAN><SPAN class=any1-reservedword>STATIC</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-reservedword>FUNCTION</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-variable>SetHTMLFile</SPAN><SPAN class=any1-symbol>( cFile )
|
||||
|
||||
</SPAN><SPAN class=any1-reservedword>LOCAL</SPAN><SPAN class=any1-space> Self := </SPAN><SPAN class=any1-variable>QSelf</SPAN><SPAN class=any1-symbol>()
|
||||
|
||||
::cHTMLFile := cFile
|
||||
|
||||
</SPAN><SPAN class=any1-reservedword>RETURN</SPAN><SPAN class=any1-symbol>( Self )
|
||||
|
||||
</SPAN><SPAN class=any1-reservedword>STATIC</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-reservedword>FUNCTION</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-variable>AddReplaceTag</SPAN><SPAN class=any1-symbol>( cTag, cReplaceText )
|
||||
|
||||
</SPAN><SPAN class=any1-reservedword>LOCAL</SPAN><SPAN class=any1-space> Self := </SPAN><SPAN class=any1-variable>QSelf</SPAN><SPAN class=any1-symbol>()
|
||||
|
||||
</SPAN><SPAN class=any1-function>aAdd</SPAN><SPAN class=any1-symbol>( ::aReplaceTags, { cTag, cReplaceText } )
|
||||
|
||||
</SPAN><SPAN class=any1-reservedword>RETURN</SPAN><SPAN class=any1-symbol>( Self )
|
||||
</SPAN></SPAN>
|
||||
</CODE></PRE>
|
||||
</BODY></HTML>
|
||||
Reference in New Issue
Block a user