<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>FDS's Blog &#187; FDS</title>
	<atom:link href="http://blog.1xi.net/author/admin/feed" rel="self" type="application/rss+xml" />
	<link>http://blog.1xi.net</link>
	<description>收藏和分享</description>
	<lastBuildDate>Thu, 12 May 2011 06:33:30 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.2</generator>
		<item>
		<title>用ASP做在线升级文件</title>
		<link>http://blog.1xi.net/asp/asp-zaixian-shengji-wenjian</link>
		<comments>http://blog.1xi.net/asp/asp-zaixian-shengji-wenjian#comments</comments>
		<pubDate>Thu, 30 Jul 2009 03:40:55 +0000</pubDate>
		<dc:creator>FDS</dc:creator>
				<category><![CDATA[ASP]]></category>
		<category><![CDATA[在线升级]]></category>

		<guid isPermaLink="false">http://blog.1xi.net/asp/asp-zaixian-shengji-wenjian</guid>
		<description><![CDATA[用ASP做在线升级文件的方法，方便用户升级。 &#60;% Rem ##################################################################################### Rem ## 在线升级类声明 Class Cls_oUpdate   Rem #################################################################   Rem ## 描述: ASP 在线升级类   Rem ## 版本: 1.0.0   Rem ## 作者: 萧月痕   Rem ## MSN:  xiaoyuehen(at)msn.com   Rem ## 请将(at)以 @ 替换   Rem ## 版权: 既然共享, 就无所谓版权了. 但必须限于网络传播, 不得用于传统媒体!   Rem ## 如果您能保留这些说明信息, 本人更加感谢!   Rem ## [...]]]></description>
			<content:encoded><![CDATA[<p>用ASP做在线升级文件的方法，方便用户升级。</p>
<p>&lt;%<br />
<span class="Comment">Rem #####################################################################################</span><br />
<span class="Comment">Rem ## 在线升级类声明</span><br />
<span class="Statements">Class</span> Cls_oUpdate<br />
  <span class="Comment">Rem #################################################################</span><br />
  <span class="Comment">Rem ## 描述: ASP 在线升级类</span><br />
  <span class="Comment">Rem ## 版本: 1.0.0</span><br />
  <span class="Comment">Rem ## 作者: <a title="萧月痕" href="http://blog.csdn.net/xiaoyuehen" target="_blank"></a>萧月痕</span><br />
  <span class="Comment">Rem ## MSN:  xiaoyuehen(at)msn.com</span><br />
  <span class="Comment">Rem ## 请将(at)以 @ 替换</span><br />
  <span class="Comment">Rem ## 版权: 既然共享, 就无所谓版权了. 但必须限于网络传播, 不得用于传统媒体!</span><br />
  <span class="Comment">Rem ## 如果您能保留这些说明信息, 本人更加感谢!</span><br />
  <span class="Comment">Rem ## 如果您有更好的代码优化, 相关改进, 请记得告诉我, 非常谢谢!</span><br />
  <span class="Comment">Rem #################################################################</span><br />
  <span class="Statements">Public</span> LocalVersion<span class="Symbols">,</span> LastVersion<span class="Symbols">,</span> FileType<br />
  <span class="Statements">Public</span> UrlVersion<span class="Symbols">,</span> UrlUpdate<span class="Symbols">,</span> UpdateLocalPath<span class="Symbols">,</span> Info<br />
  <span class="Statements">Public</span> UrlHistory<br />
  <span class="Statements">Private</span> sstrVersionList<span class="Symbols">,</span> sarrVersionList<span class="Symbols">,</span> sintLocalVersion<span class="Symbols">,</span> sstrLocalVersion<br />
  <span class="Statements">Private</span> sstrLogContent<span class="Symbols">,</span> sstrHistoryContent<span class="Symbols">,</span> sstrUrlUpdate<span class="Symbols">,</span> sstrUrlLocal<br />
  <span class="Comment">Rem #################################################################</span><br />
  <span class="Statements">Private</span> <span class="Statements">Sub</span> Class_Initialize<span class="Symbols">(</span><span class="Symbols">)</span><br />
   <span class="Comment">Rem ## 版本信息完整URL, 以 http:// 起头</span><br />
   <span class="Comment">Rem ## 例: http://localhost/software/Version.htm</span><br />
   UrlVersion     <span class="Operators">=</span> <span class="String">&#8220;&#8221;</span><br />
  <br />
   <span class="Comment">Rem ## 升级URL, 以 http:// 起头, /结尾</span><br />
   <span class="Comment">Rem ## 例: http://localhost/software/</span><br />
   UrlUpdate     <span class="Operators">=</span> <span class="String">&#8220;&#8221;</span><br />
  <br />
   <span class="Comment">Rem ## 本地更新目录, 以 / 起头, /结尾. 以 / 起头是为当前站点更新.防止写到其他目录.</span><br />
   <span class="Comment">Rem ## 程序将检测目录是否存在, 不存在则自动创建</span><br />
   UpdateLocalPath  <span class="Operators">=</span> <span class="String">&#8220;/&#8221;</span><br />
  <br />
   <span class="Comment">Rem ## 生成的软件历史文件</span><br />
   UrlHistory     <span class="Operators">=</span> <span class="String">&#8220;history.htm&#8221;</span><br />
  <br />
   <span class="Comment">Rem ## 最后的提示信息</span><br />
   Info        <span class="Operators">=</span> <span class="String">&#8220;&#8221;</span><br />
  <br />
   <span class="Comment">Rem ## 当前版本</span><br />
   LocalVersion    <span class="Operators">=</span> <span class="String">&#8220;1.0.0&#8243;</span><br />
  <br />
   <span class="Comment">Rem ## 最新版本</span><br />
   LastVersion    <span class="Operators">=</span> <span class="String">&#8220;1.0.0&#8243;</span><br />
  <br />
   <span class="Comment">Rem ## 各版本信息文件后缀名</span><br />
   FileType      <span class="Operators">=</span> <span class="String">&#8220;.asp&#8221;</span><br />
  <span class="Statements">End</span> <span class="Statements">Sub</span><br />
  <span class="Comment">Rem #################################################################</span><br />
 <br />
  <span class="Comment">Rem #################################################################</span><br />
  <span class="Statements">Private</span> <span class="Statements">Sub</span> Class_Terminate<span class="Symbols">(</span><span class="Symbols">)</span><br />
 <br />
  <span class="Statements">End</span> <span class="Statements">Sub</span><br />
  <span class="Comment">Rem #################################################################</span><br />
  <span class="Comment">Rem ## 执行升级动作</span><br />
  <span class="Comment">Rem #################################################################</span><br />
  <span class="Statements">Public</span> <span class="Statements"><a href="http://dev.csdn.net/article/56/56110.shtm#"><a href="http://dev.csdn.net/article/56/56110.shtm#"><span class="stykeyword">function</span></a></a></span> doUpdate<span class="Symbols">(</span><span class="Symbols">)</span><br />
   doUpdate <span class="Operators">=</span> False<br />
  <br />
   UrlVersion    <span class="Operators">=</span> <span class="Functions">Trim</span><span class="Symbols">(</span>UrlVersion<span class="Symbols">)</span><br />
   UrlUpdate    <span class="Operators">=</span> <span class="Functions">Trim</span><span class="Symbols">(</span>UrlUpdate<span class="Symbols">)</span><br />
  <br />
   <span class="Comment">Rem ## 升级网址检测</span><br />
   <span class="Statements">If</span> <span class="Symbols">(</span><span class="Functions">Left</span><span class="Symbols">(</span>UrlVersion<span class="Symbols">,</span> <span class="digit">7</span><span class="Symbols">)</span> <span class="Operators">&lt;&gt;</span> <span class="String">&#8220;http://&#8221;</span><span class="Symbols">)</span> <span class="Operators">Or</span> <span class="Symbols">(</span><span class="Functions">Left</span><span class="Symbols">(</span>UrlUpdate<span class="Symbols">,</span> <span class="digit">7</span><span class="Symbols">)</span> <span class="Operators">&lt;&gt;</span> <span class="String">&#8220;http://&#8221;</span><span class="Symbols">)</span> <span class="Statements">Then</span><br />
    Info <span class="Operators">=</span> <span class="String">&#8220;版本检测网址为空, 升级网址为空或格式错误(#1)&#8221;</span><br />
    <span class="Statements">Exit</span> <span class="Statements"><a href="http://dev.csdn.net/article/56/56110.shtm#"><a href="http://dev.csdn.net/article/56/56110.shtm#"><span class="stykeyword">function</span></a></a></span><br />
   <span class="Statements">End</span> <span class="Statements">If</span><br />
  <br />
   <span class="Statements">If</span> <span class="Functions">Right</span><span class="Symbols">(</span>UrlUpdate<span class="Symbols">,</span> <span class="digit">1</span><span class="Symbols">)</span> <span class="Operators">&lt;&gt;</span> <span class="String">&#8220;/&#8221;</span> <span class="Statements">Then</span><br />
    sstrUrlUpdate <span class="Operators">=</span> UrlUpdate <span class="Operators">&amp;</span> <span class="String">&#8220;/&#8221;</span><br />
   <span class="Statements">Else</span><br />
    sstrUrlUpdate <span class="Operators">=</span> UrlUpdate<br />
   <span class="Statements">End</span> <span class="Statements">If</span><br />
  <br />
   <span class="Statements">If</span> <span class="Functions">Right</span><span class="Symbols">(</span>UpdateLocalPath<span class="Symbols">,</span> <span class="digit">1</span><span class="Symbols">)</span> <span class="Operators">&lt;&gt;</span> <span class="String">&#8220;/&#8221;</span> <span class="Statements">Then</span><br />
    sstrUrlLocal <span class="Operators">=</span> UpdateLocalPath <span class="Operators">&amp;</span> <span class="String">&#8220;/&#8221;</span><br />
   <span class="Statements">Else</span><br />
    sstrUrlLocal <span class="Operators">=</span> UpdateLocalPath<br />
   <span class="Statements">End</span> <span class="Statements">If</span>  <br />
  <br />
   <span class="Comment">Rem ## 当前版本信息(数字)</span><br />
   sstrLocalVersion <span class="Operators">=</span> LocalVersion<br />
   sintLocalVersion <span class="Operators">=</span> <span class="Functions">Replace</span><span class="Symbols">(</span>sstrLocalVersion<span class="Symbols">,</span> <span class="String">&#8220;.&#8221;</span><span class="Symbols">,</span> <span class="String">&#8220;&#8221;</span><span class="Symbols">)</span><br />
   sintLocalVersion <span class="Operators">=</span> toNum<span class="Symbols">(</span>sintLocalVersion<span class="Symbols">,</span> <span class="digit">0</span><span class="Symbols">)</span><br />
  <br />
   <span class="Comment">Rem ## 版本检测(初始化版本信息, 并进行比较)</span><br />
   <span class="Statements">If</span> IsLastVersion <span class="Statements">Then</span> <span class="Statements">Exit</span> <span class="Statements"><a href="http://dev.csdn.net/article/56/56110.shtm#"><a href="http://dev.csdn.net/article/56/56110.shtm#"><span class="stykeyword">function</span></a></a></span><br />
  <br />
   <span class="Comment">Rem ## 开始升级</span><br />
   doUpdate <span class="Operators">=</span> NowUpdate<span class="Symbols">(</span><span class="Symbols">)</span><br />
   LastVersion <span class="Operators">=</span> sstrLocalVersion<br />
  <span class="Statements">End</span> <span class="Statements"><a href="http://dev.csdn.net/article/56/56110.shtm#"><a href="http://dev.csdn.net/article/56/56110.shtm#"><span class="stykeyword">function</span></a></a></span><br />
  <span class="Comment">Rem #################################################################</span><br />
 <br />
  <span class="Comment">Rem ## 检测是否为最新版本</span><br />
  <span class="Comment">Rem #################################################################</span><br />
   <span class="Statements">Private</span> <span class="Statements"><a href="http://dev.csdn.net/article/56/56110.shtm#"><a href="http://dev.csdn.net/article/56/56110.shtm#"><span class="stykeyword">function</span></a></a></span> IsLastVersion<span class="Symbols">(</span><span class="Symbols">)</span><br />
    <span class="Comment">Rem ## 初始化版本信息(初始化 sarrVersionList 数组)</span><br />
    <span class="Statements">If</span> iniVersionList <span class="Statements">Then</span><br />
     <span class="Comment">Rem ## 若成功, 则比较版本</span><br />
     <span class="Statements">Dim</span> i<br />
     IsLastVersion <span class="Operators">=</span> True<br />
     <span class="Statements">For</span> i <span class="Operators">=</span> <span class="digit">0</span> to <span class="Functions">UBound</span><span class="Symbols">(</span>sarrVersionList<span class="Symbols">)</span><br />
      <span class="Statements">If</span> sarrVersionList<span class="Symbols">(</span>i<span class="Symbols">)</span> <span class="Operators">&gt;</span> sintLocalVersion <span class="Statements">Then</span><br />
       <span class="Comment">Rem ## 若有最新版本, 则退出循环</span><br />
       IsLastVersion <span class="Operators">=</span> False<br />
       Info <span class="Operators">=</span> <span class="String">&#8220;已经是最新版本!&#8221;</span><br />
       <span class="Statements">Exit</span> <span class="Statements">For</span><br />
      <span class="Statements">End</span> <span class="Statements">If</span><br />
     <span class="Statements">Next</span><br />
    <span class="Statements">Else</span><br />
     <span class="Comment">Rem ## 否则返回出错信息</span><br />
     IsLastVersion <span class="Operators">=</span> True<br />
     Info <span class="Operators">=</span> <span class="String">&#8220;获取版本信息时出错!(#2)&#8221;</span><br />
    <span class="Statements">End</span> <span class="Statements">If</span>  <br />
   <span class="Statements">End</span> <span class="Statements"><a href="http://dev.csdn.net/article/56/56110.shtm#"><a href="http://dev.csdn.net/article/56/56110.shtm#"><span class="stykeyword">function</span></a></a></span><br />
  <span class="Comment">Rem #################################################################</span><br />
  <span class="Comment">Rem ## 检测是否为最新版本</span><br />
  <span class="Comment">Rem #################################################################</span><br />
   <span class="Statements">Private</span> <span class="Statements"><a href="http://dev.csdn.net/article/56/56110.shtm#"><a href="http://dev.csdn.net/article/56/56110.shtm#"><span class="stykeyword">function</span></a></a></span> iniVersionList<span class="Symbols">(</span><span class="Symbols">)</span><br />
    iniVersionList <span class="Operators">=</span> False<br />
   <br />
    <span class="Statements">Dim</span> strVersion<br />
    strVersion <span class="Operators">=</span> getVersionList<span class="Symbols">(</span><span class="Symbols">)</span><br />
   <br />
    <span class="Comment">Rem ## 若返回值为空, 则初始化失败</span><br />
    <span class="Statements">If</span> strVersion <span class="Operators">=</span> <span class="String">&#8220;&#8221;</span> <span class="Statements">Then</span><br />
     Info <span class="Operators">=</span> <span class="String">&#8220;出错&#8230;&#8230;.&#8221;</span><br />
     <span class="Statements">Exit</span> <span class="Statements"><a href="http://dev.csdn.net/article/56/56110.shtm#"><a href="http://dev.csdn.net/article/56/56110.shtm#"><span class="stykeyword">function</span></a></a></span><br />
    <span class="Statements">End</span> <span class="Statements">If</span><br />
   <br />
    sstrVersionList <span class="Operators">=</span> <span class="Functions">Replace</span><span class="Symbols">(</span>strVersion<span class="Symbols">,</span> <span class="String">&#8221; &#8220;</span><span class="Symbols">,</span> <span class="String">&#8220;&#8221;</span><span class="Symbols">)</span><br />
    sarrVersionList <span class="Operators">=</span> <span class="Functions">Split</span><span class="Symbols">(</span>sstrVersionList<span class="Symbols">,</span> <span class="Constants">vbCrLf</span><span class="Symbols">)</span><br />
   <br />
    iniVersionList <span class="Operators">=</span> True<br />
   <span class="Statements">End</span> <span class="Statements"><a href="http://dev.csdn.net/article/56/56110.shtm#"><a href="http://dev.csdn.net/article/56/56110.shtm#"><span class="stykeyword">function</span></a></a></span><br />
  <span class="Comment">Rem #################################################################</span><br />
  <span class="Comment">Rem ## 检测是否为最新版本</span><br />
  <span class="Comment">Rem #################################################################</span><br />
   <span class="Statements">Private</span> <span class="Statements"><a href="http://dev.csdn.net/article/56/56110.shtm#"><a href="http://dev.csdn.net/article/56/56110.shtm#"><span class="stykeyword">function</span></a></a></span> getVersionList<span class="Symbols">(</span><span class="Symbols">)</span><br />
    getVersionList <span class="Operators">=</span> GetContent<span class="Symbols">(</span>UrlVersion<span class="Symbols">)</span><br />
   <span class="Statements">End</span> <span class="Statements"><a href="http://dev.csdn.net/article/56/56110.shtm#"><a href="http://dev.csdn.net/article/56/56110.shtm#"><span class="stykeyword">function</span></a></a></span><br />
  <span class="Comment">Rem #################################################################</span><br />
  <span class="Comment">Rem ## 开始更新</span><br />
  <span class="Comment">Rem #################################################################</span><br />
   <span class="Statements">Private</span> <span class="Statements"><a href="http://dev.csdn.net/article/56/56110.shtm#"><a href="http://dev.csdn.net/article/56/56110.shtm#"><span class="stykeyword">function</span></a></a></span> NowUpdate<span class="Symbols">(</span><span class="Symbols">)</span><br />
    <span class="Statements">Dim</span> i<br />
    <span class="Statements">For</span> i <span class="Operators">=</span> <span class="Functions">UBound</span><span class="Symbols">(</span>sarrVersionList<span class="Symbols">)</span> to <span class="digit">0</span> step -1<br />
     <span class="Statements">Call</span> doUpdateVersion<span class="Symbols">(</span>sarrVersionList<span class="Symbols">(</span>i<span class="Symbols">)</span><span class="Symbols">)</span><br />
    <span class="Statements">Next</span><br />
    Info <span class="Operators">=</span> <span class="String">&#8220;升级完成! &lt;a href=&#8221;</span><span class="String">&#8220;&#8221;</span> <span class="Operators">&amp;</span> sstrUrlLocal <span class="Operators">&amp;</span> UrlHistory <span class="Operators">&amp;</span> <span class="String">&#8220;&#8221;</span><span class="String">&#8220;&gt;查看&lt;/a&gt;&#8221;</span><br />
   <span class="Statements">End</span> <span class="Statements"><a href="http://dev.csdn.net/article/56/56110.shtm#"><a href="http://dev.csdn.net/article/56/56110.shtm#"><span class="stykeyword">function</span></a></a></span><br />
  <span class="Comment">Rem #################################################################</span><br />
 <br />
  <span class="Comment">Rem ## 更新版本内容</span><br />
  <span class="Comment">Rem #################################################################</span><br />
   <span class="Statements">Private</span> <span class="Statements"><a href="http://dev.csdn.net/article/56/56110.shtm#"><a href="http://dev.csdn.net/article/56/56110.shtm#"><span class="stykeyword">function</span></a></a></span> doUpdateVersion<span class="Symbols">(</span>strVer<span class="Symbols">)</span><br />
    doUpdateVersion <span class="Operators">=</span> False<br />
   <br />
    <span class="Statements">Dim</span> intVer<br />
    intVer <span class="Operators">=</span> toNum<span class="Symbols">(</span><span class="Functions">Replace</span><span class="Symbols">(</span>strVer<span class="Symbols">,</span> <span class="String">&#8220;.&#8221;</span><span class="Symbols">,</span> <span class="String">&#8220;&#8221;</span><span class="Symbols">)</span><span class="Symbols">,</span> <span class="digit">0</span><span class="Symbols">)</span><br />
   <br />
    <span class="Comment">Rem ## 若将更新的版本小于当前版本, 则退出更新</span><br />
    <span class="Statements">If</span> intVer <span class="Operators">&lt;=</span> sintLocalVersion <span class="Statements">Then</span><br />
     <span class="Statements">Exit</span> <span class="Statements"><a href="http://dev.csdn.net/article/56/56110.shtm#"><a href="http://dev.csdn.net/article/56/56110.shtm#"><span class="stykeyword">function</span></a></a></span><br />
    <span class="Statements">End</span> <span class="Statements">If</span><br />
   <br />
    <span class="Statements">Dim</span> strFileListContent<span class="Symbols">,</span> arrFileList<span class="Symbols">,</span> strUrlUpdate  <br />
    strUrlUpdate <span class="Operators">=</span> sstrUrlUpdate <span class="Operators">&amp;</span> intVer <span class="Operators">&amp;</span> FileType<br />
   <br />
    strFileListContent <span class="Operators">=</span> GetContent<span class="Symbols">(</span>strUrlUpdate<span class="Symbols">)</span><br />
   <br />
    <span class="Statements">If</span> strFileListContent <span class="Operators">=</span> <span class="String">&#8220;&#8221;</span> <span class="Statements">Then</span><br />
     <span class="Statements">Exit</span> <span class="Statements"><a href="http://dev.csdn.net/article/56/56110.shtm#"><a href="http://dev.csdn.net/article/56/56110.shtm#"><span class="stykeyword">function</span></a></a></span><br />
    <span class="Statements">End</span> <span class="Statements">If</span><br />
   <br />
    <span class="Comment">Rem ## 更新当前版本号</span><br />
    sintLocalVersion <span class="Operators">=</span> intVer<br />
    sstrLocalVersion <span class="Operators">=</span> strVer<br />
   <br />
    <span class="Statements">Dim</span> i<span class="Symbols">,</span> arrTmp<br />
    <span class="Comment">Rem ## 获取更新文件列表</span><br />
    arrFileList <span class="Operators">=</span> <span class="Functions">Split</span><span class="Symbols">(</span>strFileListContent<span class="Symbols">,</span> <span class="Constants">vbCrLf</span><span class="Symbols">)</span><br />
   <br />
    <span class="Comment">Rem ## 更新日志</span><br />
    sstrLogContent <span class="Operators">=</span> <span class="String">&#8220;&#8221;</span><br />
    sstrLogContent <span class="Operators">=</span> sstrLogContent <span class="Operators">&amp;</span> strVer <span class="Operators">&amp;</span> <span class="String">&#8220;:&#8221;</span> <span class="Operators">&amp;</span> <span class="Constants">vbCrLf</span><br />
   <br />
    <span class="Comment">Rem ## 开始更新</span><br />
    <span class="Statements">For</span> i <span class="Operators">=</span> <span class="digit">0</span> to <span class="Functions">UBound</span><span class="Symbols">(</span>arrFileList<span class="Symbols">)</span><br />
     <span class="Comment">Rem ## 更新格式: 版本号/文件.htm|目的文件</span><br />
     arrTmp <span class="Operators">=</span> <span class="Functions">Split</span><span class="Symbols">(</span>arrFileList<span class="Symbols">(</span>i<span class="Symbols">)</span><span class="Symbols">,</span> <span class="String">&#8220;|&#8221;</span><span class="Symbols">)</span><br />
     sstrLogContent <span class="Operators">=</span> sstrLogContent <span class="Operators">&amp;</span> <span class="Constants">vbTab</span> <span class="Operators">&amp;</span> arrTmp<span class="Symbols">(</span><span class="digit">1</span><span class="Symbols">)</span><br />
     <span class="Statements">Call</span> doUpdateFile<span class="Symbols">(</span>intVer <span class="Operators">&amp;</span> <span class="String">&#8220;/&#8221;</span> <span class="Operators">&amp;</span> arrTmp<span class="Symbols">(</span><span class="digit">0</span><span class="Symbols">)</span><span class="Symbols">,</span> arrTmp<span class="Symbols">(</span><span class="digit">1</span><span class="Symbols">)</span><span class="Symbols">)</span>    <br />
    <span class="Statements">Next</span><br />
   <br />
    <span class="Comment">Rem ## 写入日志文件</span><br />
    sstrLogContent <span class="Operators">=</span> sstrLogContent <span class="Operators">&amp;</span> <span class="Functions">Now</span><span class="Symbols">(</span><span class="Symbols">)</span> <span class="Operators">&amp;</span> <span class="Constants">vbCrLf</span><br />
    <span class="Objects">response</span><span class="Symbols">.</span><span class="Methods">Write</span><span class="Symbols">(</span><span class="String">&#8220;&lt;pre&gt;&#8221;</span> <span class="Operators">&amp;</span> sstrLogContent <span class="Operators">&amp;</span> <span class="String">&#8220;&lt;/pre&gt;&#8221;</span><span class="Symbols">)</span><br />
    <span class="Statements">Call</span> sDoCreateFile<span class="Symbols">(</span><span class="Objects">Server</span><span class="Symbols">.</span><span class="Methods">MapPath</span><span class="Symbols">(</span>sstrUrlLocal <span class="Operators">&amp;</span> <span class="String">&#8220;Log&#8221;</span> <span class="Operators">&amp;</span> intVer <span class="Operators">&amp;</span> <span class="String">&#8220;.htm&#8221;</span><span class="Symbols">)</span><span class="Symbols">,</span> _<br />
                                          <span class="String">&#8220;&lt;pre&gt;&#8221;</span> <span class="Operators">&amp;</span> sstrLogContent <span class="Operators">&amp;</span> <span class="String">&#8220;&lt;/pre&gt;&#8221;</span><span class="Symbols">)</span><br />
    <span class="Statements">Call</span> sDoAppendFile<span class="Symbols">(</span><span class="Objects">Server</span><span class="Symbols">.</span><span class="Methods">MapPath</span><span class="Symbols">(</span>sstrUrlLocal <span class="Operators">&amp;</span> UrlHistory<span class="Symbols">)</span><span class="Symbols">,</span> <span class="String">&#8220;&lt;pre&gt;&#8221;</span> <span class="Operators">&amp;</span> _<br />
                                          strVer <span class="Operators">&amp;</span> <span class="String">&#8220;_______&#8221;</span> <span class="Operators">&amp;</span> <span class="Functions">Now</span><span class="Symbols">(</span><span class="Symbols">)</span> <span class="Operators">&amp;</span> <span class="String">&#8220;&lt;/pre&gt;&#8221;</span> <span class="Operators">&amp;</span> <span class="Constants">vbCrLf</span><span class="Symbols">)</span><br />
   <span class="Statements">End</span> <span class="Statements"><a href="http://dev.csdn.net/article/56/56110.shtm#"><a href="http://dev.csdn.net/article/56/56110.shtm#"><span class="stykeyword">function</span></a></a></span><br />
  <span class="Comment">Rem #################################################################</span><br />
 <br />
  <span class="Comment">Rem ## 更新文件</span><br />
  <span class="Comment">Rem #################################################################</span><br />
   <span class="Statements">Private</span> <span class="Statements"><a href="http://dev.csdn.net/article/56/56110.shtm#"><a href="http://dev.csdn.net/article/56/56110.shtm#"><span class="stykeyword">function</span></a></a></span> doUpdateFile<span class="Symbols">(</span>strSourceFile<span class="Symbols">,</span> strTargetFile<span class="Symbols">)</span><br />
    <span class="Statements">Dim</span> strContent<br />
    strContent <span class="Operators">=</span> GetContent<span class="Symbols">(</span>sstrUrlUpdate <span class="Operators">&amp;</span> strSourceFile<span class="Symbols">)</span><br />
   <br />
    <span class="Comment">Rem ## 更新并写入日志</span><br />
    <span class="Statements">If</span> sDoCreateFile<span class="Symbols">(</span><span class="Objects">Server</span><span class="Symbols">.</span><span class="Methods">MapPath</span><span class="Symbols">(</span>sstrUrlLocal <span class="Operators">&amp;</span> strTargetFile<span class="Symbols">)</span><span class="Symbols">,</span> strContent<span class="Symbols">)</span> <span class="Statements">Then</span>    <br />
     sstrLogContent <span class="Operators">=</span> sstrLogContent <span class="Operators">&amp;</span> <span class="String">&#8220;  成功&#8221;</span> <span class="Operators">&amp;</span> <span class="Constants">vbCrLf</span><br />
    <span class="Statements">Else</span><br />
     sstrLogContent <span class="Operators">=</span> sstrLogContent <span class="Operators">&amp;</span> <span class="String">&#8220;  失败&#8221;</span> <span class="Operators">&amp;</span> <span class="Constants">vbCrLf</span><br />
    <span class="Statements">End</span> <span class="Statements">If</span><br />
   <span class="Statements">End</span> <span class="Statements"><a href="http://dev.csdn.net/article/56/56110.shtm#"><a href="http://dev.csdn.net/article/56/56110.shtm#"><span class="stykeyword">function</span></a></a></span><br />
  <span class="Comment">Rem #################################################################</span><br />
  <span class="Comment">Rem ## 远程获得内容</span><br />
  <span class="Comment">Rem #################################################################</span><br />
   <span class="Statements">Private</span> <span class="Statements"><a href="http://dev.csdn.net/article/56/56110.shtm#"><a href="http://dev.csdn.net/article/56/56110.shtm#"><span class="stykeyword">function</span></a></a></span> GetContent<span class="Symbols">(</span>strUrl<span class="Symbols">)</span><br />
    GetContent <span class="Operators">=</span> <span class="String">&#8220;&#8221;</span><br />
   <br />
    <span class="Statements">Dim</span> oXhttp<span class="Symbols">,</span> strContent<br />
    <span class="Statements">Set</span> oXhttp <span class="Operators">=</span> <span class="Objects">Server</span><span class="Symbols">.</span><span class="Methods">CreateObject</span><span class="Symbols">(</span><span class="String">&#8220;Microsoft.XMLHTTP&#8221;</span><span class="Symbols">)</span><br />
    <span class="Comment">&#8216;On Error Resume Next </span><br />
    <span class="Statements">With</span> oXhttp<br />
     <span class="Symbols">.</span><span class="Methods">Open</span> <span class="String">&#8220;GET&#8221;</span><span class="Symbols">,</span> strUrl<span class="Symbols">,</span> False<span class="Symbols">,</span> <span class="String">&#8220;&#8221;</span><span class="Symbols">,</span> <span class="String">&#8220;&#8221;</span><br />
     <span class="Symbols">.</span>Send<br />
     <span class="Statements">If</span> <span class="Symbols">.</span>readystate <span class="Operators">&lt;&gt;</span> <span class="digit">4</span> <span class="Statements">Then</span> <span class="Statements">Exit</span> <span class="Statements"><a href="http://dev.csdn.net/article/56/56110.shtm#"><a href="http://dev.csdn.net/article/56/56110.shtm#"><span class="stykeyword">function</span></a></a></span><br />
     strContent <span class="Operators">=</span> <span class="Symbols">.</span>Responsebody<br />
    <br />
     strContent <span class="Operators">=</span> sBytesToBstr<span class="Symbols">(</span>strContent<span class="Symbols">)</span><br />
    <span class="Statements">End</span> <span class="Statements">With</span><br />
   <br />
    <span class="Statements">Set</span> oXhttp <span class="Operators">=</span> Nothing<br />
    <span class="Statements">If</span> <span class="Objects">Err</span><span class="Symbols">.</span><span class="Methods">Number</span> <span class="Operators">&lt;&gt;</span> <span class="digit">0</span> <span class="Statements">Then</span><br />
     <span class="Objects">response</span><span class="Symbols">.</span><span class="Methods">Write</span><span class="Symbols">(</span><span class="Objects">Err</span><span class="Symbols">.</span><span class="Methods">Description</span><span class="Symbols">)</span><br />
     <span class="Objects">Err</span><span class="Symbols">.</span><span class="Methods">Clear</span><br />
     <span class="Statements">Exit</span> <span class="Statements"><a href="http://dev.csdn.net/article/56/56110.shtm#"><a href="http://dev.csdn.net/article/56/56110.shtm#"><span class="stykeyword">function</span></a></a></span><br />
    <span class="Statements">End</span> <span class="Statements">If</span><br />
   <br />
    GetContent <span class="Operators">=</span> strContent<br />
   <span class="Statements">End</span> <span class="Statements"><a href="http://dev.csdn.net/article/56/56110.shtm#"><a href="http://dev.csdn.net/article/56/56110.shtm#"><span class="stykeyword">function</span></a></a></span><br />
  <span class="Comment">Rem #################################################################</span><br />
  <span class="Comment">Rem #################################################################</span><br />
  <span class="Comment">Rem ## 编码转换 2进制 =&gt; 字符串</span><br />
   <span class="Statements">Private</span> <span class="Statements"><a href="http://dev.csdn.net/article/56/56110.shtm#"><a href="http://dev.csdn.net/article/56/56110.shtm#"><span class="stykeyword">function</span></a></a></span> sBytesToBstr<span class="Symbols">(</span>vIn<span class="Symbols">)</span><br />
    <span class="Statements">dim</span> objStream<br />
    <span class="Statements">set</span> objStream <span class="Operators">=</span> <span class="Objects">Server</span><span class="Symbols">.</span><span class="Methods">CreateObject</span><span class="Symbols">(</span><span class="String">&#8220;adodb.stream&#8221;</span><span class="Symbols">)</span><br />
    objStream<span class="Symbols">.</span>Type    <span class="Operators">=</span> <span class="digit">1</span><br />
    objStream<span class="Symbols">.</span>Mode    <span class="Operators">=</span> <span class="digit">3</span><br />
    objStream<span class="Symbols">.</span><span class="Methods">Open</span><br />
    objStream<span class="Symbols">.</span><span class="Methods">Write</span> vIn<br />
   <br />
    objStream<span class="Symbols">.</span>Position  <span class="Operators">=</span> <span class="digit">0</span><br />
    objStream<span class="Symbols">.</span>Type    <span class="Operators">=</span> <span class="digit">2</span><br />
    objStream<span class="Symbols">.</span><span class="Methods">Charset</span>  <span class="Operators">=</span> <span class="String">&#8220;GB2312&#8243;</span><br />
    sBytesToBstr     <span class="Operators">=</span> objStream<span class="Symbols">.</span>ReadText<br />
    objStream<span class="Symbols">.</span><span class="Methods">Close</span><br />
    <span class="Statements">set</span> objStream    <span class="Operators">=</span> nothing<br />
   <span class="Statements">End</span> <span class="Statements"><a href="http://dev.csdn.net/article/56/56110.shtm#"><a href="http://dev.csdn.net/article/56/56110.shtm#"><span class="stykeyword">function</span></a></a></span><br />
  <span class="Comment">Rem #################################################################</span><br />
  <span class="Comment">Rem #################################################################</span><br />
  <span class="Comment">Rem ## 编码转换 2进制 =&gt; 字符串</span><br />
   <span class="Statements">Private</span> <span class="Statements"><a href="http://dev.csdn.net/article/56/56110.shtm#"><a href="http://dev.csdn.net/article/56/56110.shtm#"><span class="stykeyword">function</span></a></a></span> sDoCreateFile<span class="Symbols">(</span>strFileName<span class="Symbols">,</span> ByRef strContent<span class="Symbols">)</span><br />
    sDoCreateFile <span class="Operators">=</span> False<br />
    <span class="Statements">Dim</span> strPath<br />
    strPath <span class="Operators">=</span> <span class="Functions">Left</span><span class="Symbols">(</span>strFileName<span class="Symbols">,</span> <span class="Functions">InstrRev</span><span class="Symbols">(</span>strFileName<span class="Symbols">,</span> <span class="String">&#8220;\&#8221;</span><span class="Symbols">,</span> -1<span class="Symbols">,</span> <span class="digit">1</span><span class="Symbols">)</span><span class="Symbols">)</span><br />
    <span class="Comment">Rem ## 检测路径及文件名有效性</span><br />
    <span class="Statements">If</span> <span class="Operators">Not</span><span class="Symbols">(</span>CreateDir<span class="Symbols">(</span>strPath<span class="Symbols">)</span><span class="Symbols">)</span> <span class="Statements">Then</span> <span class="Statements">Exit</span> <span class="Statements"><a href="http://dev.csdn.net/article/56/56110.shtm#"><a href="http://dev.csdn.net/article/56/56110.shtm#"><span class="stykeyword">function</span></a></a></span><br />
    <span class="Comment">&#8216;If Not(CheckFileName(strFileName)) Then Exit <a href="http://dev.csdn.net/article/56/56110.shtm#"><a href="http://dev.csdn.net/article/56/56110.shtm#"><span class="stykeyword">function</span></a></a></span><br />
   <br />
    <span class="Comment">&#8216;response.Write(strFileName)</span><br />
    <span class="Statements">Const</span> ForReading <span class="Operators">=</span> <span class="digit">1</span><span class="Symbols">,</span> ForWriting <span class="Operators">=</span> <span class="digit">2</span><span class="Symbols">,</span> ForAppending <span class="Operators">=</span> <span class="digit">8</span><br />
    <span class="Statements">Dim</span> fso<span class="Symbols">,</span> f<br />
    <span class="Statements">Set</span> fso <span class="Operators">=</span> <span class="Methods">CreateObject</span><span class="Symbols">(</span><span class="String">&#8220;Scripting.FileSystemObject&#8221;</span><span class="Symbols">)</span><br />
    <span class="Statements">Set</span> f <span class="Operators">=</span> fso<span class="Symbols">.</span>OpenTextFile<span class="Symbols">(</span>strFileName<span class="Symbols">,</span> ForWriting<span class="Symbols">,</span> True<span class="Symbols">)</span><br />
    f<span class="Symbols">.</span><span class="Methods">Write</span> strContent<br />
    f<span class="Symbols">.</span><span class="Methods">Close</span><br />
    <span class="Statements">Set</span> fso <span class="Operators">=</span> nothing<br />
    <span class="Statements">Set</span> f <span class="Operators">=</span> nothing<br />
    sDoCreateFile <span class="Operators">=</span> True<br />
   <span class="Statements">End</span> <span class="Statements"><a href="http://dev.csdn.net/article/56/56110.shtm#"><a href="http://dev.csdn.net/article/56/56110.shtm#"><span class="stykeyword">function</span></a></a></span><br />
  <span class="Comment">Rem #################################################################</span><br />
  <span class="Comment">Rem #################################################################</span><br />
  <span class="Comment">Rem ## 编码转换 2进制 =&gt; 字符串</span><br />
   <span class="Statements">Private</span> <span class="Statements"><a href="http://dev.csdn.net/article/56/56110.shtm#"><a href="http://dev.csdn.net/article/56/56110.shtm#"><span class="stykeyword">function</span></a></a></span> sDoAppendFile<span class="Symbols">(</span>strFileName<span class="Symbols">,</span> ByRef strContent<span class="Symbols">)</span><br />
    sDoAppendFile <span class="Operators">=</span> False<br />
    <span class="Statements">Dim</span> strPath<br />
    strPath <span class="Operators">=</span> <span class="Functions">Left</span><span class="Symbols">(</span>strFileName<span class="Symbols">,</span> <span class="Functions">InstrRev</span><span class="Symbols">(</span>strFileName<span class="Symbols">,</span> <span class="String">&#8220;\&#8221;</span><span class="Symbols">,</span> -1<span class="Symbols">,</span> <span class="digit">1</span><span class="Symbols">)</span><span class="Symbols">)</span><br />
    <span class="Comment">Rem ## 检测路径及文件名有效性</span><br />
    <span class="Statements">If</span> <span class="Operators">Not</span><span class="Symbols">(</span>CreateDir<span class="Symbols">(</span>strPath<span class="Symbols">)</span><span class="Symbols">)</span> <span class="Statements">Then</span> <span class="Statements">Exit</span> <span class="Statements"><a href="http://dev.csdn.net/article/56/56110.shtm#"><a href="http://dev.csdn.net/article/56/56110.shtm#"><span class="stykeyword">function</span></a></a></span><br />
    <span class="Comment">&#8216;If Not(CheckFileName(strFileName)) Then Exit <a href="http://dev.csdn.net/article/56/56110.shtm#"><a href="http://dev.csdn.net/article/56/56110.shtm#"><span class="stykeyword">function</span></a></a></span><br />
   <br />
    <span class="Comment">&#8216;response.Write(strFileName)</span><br />
    <span class="Statements">Const</span> ForReading <span class="Operators">=</span> <span class="digit">1</span><span class="Symbols">,</span> ForWriting <span class="Operators">=</span> <span class="digit">2</span><span class="Symbols">,</span> ForAppending <span class="Operators">=</span> <span class="digit">8</span><br />
    <span class="Statements">Dim</span> fso<span class="Symbols">,</span> f<br />
    <span class="Statements">Set</span> fso <span class="Operators">=</span> <span class="Methods">CreateObject</span><span class="Symbols">(</span><span class="String">&#8220;Scripting.FileSystemObject&#8221;</span><span class="Symbols">)</span><br />
    <span class="Statements">Set</span> f <span class="Operators">=</span> fso<span class="Symbols">.</span>OpenTextFile<span class="Symbols">(</span>strFileName<span class="Symbols">,</span> ForAppending<span class="Symbols">,</span> True<span class="Symbols">)</span><br />
    f<span class="Symbols">.</span><span class="Methods">Write</span> strContent<br />
    f<span class="Symbols">.</span><span class="Methods">Close</span><br />
    <span class="Statements">Set</span> fso <span class="Operators">=</span> nothing<br />
    <span class="Statements">Set</span> f <span class="Operators">=</span> nothing<br />
    sDoAppendFile <span class="Operators">=</span> True<br />
   <span class="Statements">End</span> <span class="Statements"><a href="http://dev.csdn.net/article/56/56110.shtm#"><a href="http://dev.csdn.net/article/56/56110.shtm#"><span class="stykeyword">function</span></a></a></span><br />
  <span class="Comment">Rem #################################################################</span><br />
  <span class="Comment">Rem ## 建立目录的程序，如果有多级目录，则一级一级的创建</span><br />
  <span class="Comment">Rem #################################################################</span><br />
   <span class="Statements">Private</span> <span class="Statements"><a href="http://dev.csdn.net/article/56/56110.shtm#"><a href="http://dev.csdn.net/article/56/56110.shtm#"><span class="stykeyword">function</span></a></a></span> CreateDir<span class="Symbols">(</span>ByVal strLocalPath<span class="Symbols">)</span><br />
    <span class="Statements">Dim</span> i<span class="Symbols">,</span> strPath<span class="Symbols">,</span> objFolder<span class="Symbols">,</span> tmpPath<span class="Symbols">,</span> tmptPath<br />
    <span class="Statements">Dim</span> arrPathList<span class="Symbols">,</span> intLevel<br />
   <br />
    <span class="Comment">&#8216;On Error Resume Next</span><br />
    strPath     <span class="Operators">=</span> <span class="Functions">Replace</span><span class="Symbols">(</span>strLocalPath<span class="Symbols">,</span> <span class="String">&#8220;\&#8221;</span><span class="Symbols">,</span> <span class="String">&#8220;/&#8221;</span><span class="Symbols">)</span><br />
    <span class="Statements">Set</span> objFolder  <span class="Operators">=</span> <span class="Objects">server</span><span class="Symbols">.</span><span class="Methods">CreateObject</span><span class="Symbols">(</span><span class="String">&#8220;Scripting.FileSystemObject&#8221;</span><span class="Symbols">)</span><br />
    arrPathList   <span class="Operators">=</span> <span class="Functions">Split</span><span class="Symbols">(</span>strPath<span class="Symbols">,</span> <span class="String">&#8220;/&#8221;</span><span class="Symbols">)</span><br />
    intLevel     <span class="Operators">=</span> <span class="Functions">UBound</span><span class="Symbols">(</span>arrPathList<span class="Symbols">)</span><br />
   <br />
    <span class="Statements">For</span> I <span class="Operators">=</span> <span class="digit">0</span> To intLevel<br />
     <span class="Statements">If</span> I <span class="Operators">=</span> <span class="digit">0</span> <span class="Statements">Then</span><br />
      tmptPath <span class="Operators">=</span> arrPathList<span class="Symbols">(</span><span class="digit">0</span><span class="Symbols">)</span> <span class="Operators">&amp;</span> <span class="String">&#8220;/&#8221;</span><br />
     <span class="Statements">Else</span><br />
      tmptPath <span class="Operators">=</span> tmptPath <span class="Operators">&amp;</span> arrPathList<span class="Symbols">(</span>I<span class="Symbols">)</span> <span class="Operators">&amp;</span> <span class="String">&#8220;/&#8221;</span><br />
     <span class="Statements">End</span> <span class="Statements">If</span><br />
     tmpPath <span class="Operators">=</span> <span class="Functions">Left</span><span class="Symbols">(</span>tmptPath<span class="Symbols">,</span> <span class="Functions">Len</span><span class="Symbols">(</span>tmptPath<span class="Symbols">)</span> <span class="Operators">-</span> <span class="digit">1</span><span class="Symbols">)</span><br />
     <span class="Statements">If</span> <span class="Operators">Not</span> objFolder<span class="Symbols">.</span>FolderExists<span class="Symbols">(</span>tmpPath<span class="Symbols">)</span> <span class="Statements">Then</span> objFolder<span class="Symbols">.</span>CreateFolder tmpPath<br />
    <span class="Statements">Next</span><br />
   <br />
    <span class="Statements">Set</span> objFolder <span class="Operators">=</span> Nothing<br />
    <span class="Statements">If</span> <span class="Objects">Err</span><span class="Symbols">.</span><span class="Methods">Number</span> <span class="Operators">&lt;&gt;</span> <span class="digit">0</span> <span class="Statements">Then</span><br />
     CreateDir <span class="Operators">=</span> False<br />
     <span class="Objects">Err</span><span class="Symbols">.</span><span class="Methods">Clear</span><br />
    <span class="Statements">Else</span><br />
     CreateDir <span class="Operators">=</span> True<br />
    <span class="Statements">End</span> <span class="Statements">If</span><br />
   <span class="Statements">End</span> <span class="Statements"><a href="http://dev.csdn.net/article/56/56110.shtm#"><a href="http://dev.csdn.net/article/56/56110.shtm#"><span class="stykeyword">function</span></a></a></span><br />
  <span class="Comment">Rem #################################################################</span><br />
  <span class="Comment">Rem ## 长整数转换</span><br />
  <span class="Comment">Rem #################################################################</span><br />
   <span class="Statements">Private</span> <span class="Statements"><a href="http://dev.csdn.net/article/56/56110.shtm#"><a href="http://dev.csdn.net/article/56/56110.shtm#"><span class="stykeyword">function</span></a></a></span> toNum<span class="Symbols">(</span>s<span class="Symbols">,</span> default<span class="Symbols">)</span><br />
    <span class="Statements">If</span> <span class="Functions">IsNumeric</span><span class="Symbols">(</span>s<span class="Symbols">)</span> <span class="Operators">and</span> s <span class="Operators">&lt;&gt;</span> <span class="String">&#8220;&#8221;</span> <span class="Statements">then</span><br />
     toNum <span class="Operators">=</span> <span class="Functions">CLng</span><span class="Symbols">(</span>s<span class="Symbols">)</span><br />
    <span class="Statements">Else</span><br />
     toNum <span class="Operators">=</span> default<br />
    <span class="Statements">End</span> <span class="Statements">If</span><br />
   <span class="Statements">End</span> <span class="Statements"><a href="http://dev.csdn.net/article/56/56110.shtm#"><a href="http://dev.csdn.net/article/56/56110.shtm#"><span class="stykeyword">function</span></a></a></span><br />
  <span class="Comment">Rem #################################################################</span><br />
<span class="Statements">End</span> <span class="Statements">Class</span><br />
<span class="Comment">Rem #####################################################################################</span><br />
%<span class="Operators">&gt;</span></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.1xi.net/asp/asp-zaixian-shengji-wenjian/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>ASP实现图片上传</title>
		<link>http://blog.1xi.net/asp/asp-tupian-shangchuan</link>
		<comments>http://blog.1xi.net/asp/asp-tupian-shangchuan#comments</comments>
		<pubDate>Thu, 30 Jul 2009 03:22:52 +0000</pubDate>
		<dc:creator>FDS</dc:creator>
				<category><![CDATA[ASP]]></category>
		<category><![CDATA[上传]]></category>
		<category><![CDATA[图片]]></category>

		<guid isPermaLink="false">http://blog.1xi.net/asp/asp-tupian-shangchuan</guid>
		<description><![CDATA[用纯ＡＳＰ代码来实现图片的上传以及保存到数据库的功能（顺便也实现显示数据库中的图片到网页上的功能）。首先我们先来熟悉一下将要使用的对象方法。我们用来获取上一个页面传递过来的数据一般是使用Request对象]]></description>
			<content:encoded><![CDATA[<p><span id="ArticleContent1_ArticleContent1_lblContent">用纯ＡＳＰ代码来实现图片的上传以及保存到数据库的功能（顺便也实现显示数据库中的图片到网页上的功能）。<br />
　　首先我们先来熟悉一下将要使用的对象方法。我们用来获取上一个页面传递过来的数据一般是使用Request对象。同样的，我们也可以使用Request对象来获取上传上来的文件数据，使用的方法是Request.BinaryRead()。而我们要从数据库中读出来图片的数据显示到网页上面要用到的方法是：<br />
Request.BinaryWrite()。在我们得到了图片的数据，要保存到数据库中的时候，不可以直接<br />
使用Insert语句对数据库进行操作，而是要使用ADO的AppendChunk方法，同样的，读出数据库<br />
中的图片数据，要使用GetChunk方法。各个方法的具体语法如下：<br />
*Request.BinaryRead语法：<br />
variant=Request.BinaryRead(count)<br />
参数<br />
variant<br />
返回值保存着从客户端读取到数据。<br />
count<br />
指明要从客户端读取的数据量大小，这个值小于或者等于使用方法Request.TotalBytes得到的<br />
数据量。<br />
*Request.BinaryWrite语法：<br />
Request.BinaryWritedata<br />
参数<br />
data<br />
要写入到客户端浏览器中的数据包。<br />
*Request.TotalBytes语法：<br />
variant=Request.TotalBytes<br />
参数<br />
variant<br />
返回从客户端读取到数据量的字节数。<br />
*AppendChunk语法<br />
将数据追加到大型文本、二进制数据Field或Parameter对象。<br />
object.AppendChunkData<br />
参数<br />
objectField或Parameter对象<br />
Data变体型，包含追加到对象中的数据。<br />
说明<br />
使用Field或Parameter对象的AppendChunk方法可将长二进制或字符数<br />
　　据填写到对象中。在系统内存有限的情况下，可以使用AppendChunk方法对长整型值进行<br />
部分而非全部的操作。<br />
*GetChunk语法<br />
返回大型文本或二进制数据Field对象的全部或部分内容。<br />
variable=field.GetChunk(Size)<br />
返回值<br />
返回变体型。<br />
参数<br />
Size长整型表达式，等于所要检索的字节或字符数。<br />
说明<br />
　　使用Field对象的GetChunk方法检索其部分或全部长二进制或字符数据。在系统内存有限<br />
的情况下，可使用GetChunk方法处理部分而非全部的长整型值。<br />
GetChunk调用返回的数据将赋给“变量”。如果Size大于剩余的数据，则<br />
GetChunk仅返回剩余的数据而无需用空白填充“变量”。如果字段为空，则<br />
GetChunk方法返回Null。<br />
　　每个后续的GetChunk调用将检索从前一次GetChunk调用停止处开始的数据。但是，如果从<br />
一个字段检索数据然后在当前记录中设置或读取另一个字段的值，ADO将认为已从第一个字段<br />
中检索出数据。如果在第一个字段上再次调用GetChunk方法，ADO将把调用解释为新的GetChu<br />
nk操作并从记录的起始处开始读取。如果其他Recordset对象不是首个Recordset对象的副本，<br />
则访问其中的字段不会破坏GetChunk操作。<br />
如果Field对象的Attributes属性中的adFldLong位设置为True，则可以对该字段使用GetChun<br />
k方法。<br />
如果在Field对象上使用Getchunk方法时没有当前记录，将产生错误3021（无当前记录）。<br />
　　接下来，我们就要来设计我们的数据库了，作为测试我们的数据库结构如下（access200<br />
0）：</p>
<p>字段名称　　　　类型　　　　描述<br />
　　id　　　自动编号　　　主键值<br />
    img          OLE对象　　　用来保存图片数据　</p>
<p>对于在MSSQLServer7中，对应的结构如下：<br />
字段名称　　　　类型　　　　描述<br />
　　id　　　　int(Identity)　       主键值<br />
     img　　    image　　　          用来保存图片数据　</p>
<p>现在开始正式编写我们的纯ＡＳＰ代码上传部分了，首先，我们有一个提供给用户的上传界面<br />
，可以让用户选择要上传的图片。代码如下<br />
（upload.htm）：<br />
&lt;html&gt;<br />
&lt;body&gt;<br />
&lt;center&gt;<br />
&lt;form name=&#8221;mainForm&#8221; enctype=&#8221;multipart/form-data&#8221; action=&#8221;process.asp&#8221; method=p<br />
ost&gt;<br />
　　&lt;inputtype=filename=mefile&gt;&lt;br&gt;<br />
　　&lt;inputtype=submitname=okvalue=&#8221;OK&#8221;&gt;<br />
&lt;/form&gt;<br />
&lt;/center&gt;<br />
&lt;/body&gt;<br />
&lt;/html&gt;<br />
注意enctype=&#8221;multipart/form-data&#8221;，一定要在Form中有这个属性，否则，将无法得到上传<br />
上来的数据。接下来，我们要在process.asp中对从浏览器中获取的数据进行必要的处理，因<br />
为我们在process.asp中获取到的数据不仅仅包含了我们想要的上传上来的图片的数据，也包<br />
含了其他的无用的信息，我们需要剔除冗余数据，并将处理过的图片数据保存到数据库中，这<br />
里我们以access2000为例。具体代码如下（process.asp）：<br />
&lt;%<br />
response.buffer=true<br />
formsize=request.totalbytes<br />
formdata=request.binaryread(formsize)<br />
bncrlf=chrB(13)&amp;chrB(10)<br />
divider=leftB(formdata,clng(instrb(formdata,bncrlf))-1)<br />
datastart=instrb(formdata,bncrlf&amp;bncrlf)+4<br />
dataend=instrb(datastart+1,formdata,divider)-datastart<br />
mydata=midb(formdata,datastart,dataend)<br />
setconnGraph=server.CreateObject(&#8220;ADODB.connection&#8221;)<br />
connGraph.ConnectionString=&#8221;driver={MicrosoftAccessDriver(*.mdb)};DBQ=&#8221;&amp;server.Ma<br />
pPath(&#8220;images.mdb&#8221;)&amp;&#8221;;uid=;PWD=;&#8221;<br />
connGraph.Open<br />
setrec=server.createobject(&#8220;ADODB.recordset&#8221;)<br />
rec.Open&#8221;SELECT*FROM[images]whereidisnull&#8221;,connGraph,1,3<br />
rec.addnew<br />
rec(&#8220;img&#8221;).appendchunkmydata<br />
rec.update<br />
rec.close<br />
setrec=nothing<br />
setconnGraph=nothing<br />
%&gt;<br />
好了，这下我们就把上传来的图片保存到了名为images.mdb的数据库中了，剩下的工作就是要<br />
将数据库中的图片数据显示到网页上面了。一般在ＨＴＭＬ中，显示图片都是使用&lt;IMG&gt;标签<br />
，也就是&lt;IMGSRC=&#8221;图片路径&#8221;&gt;，但是我们的图片是保存到了数据库中，“图片路径”是什么<br />
呢？呵呵，其实这个SRC属性除了指定路径外，也可以这样使用哦：<br />
&lt;IMGSRC=&#8221;showimg.asp?id=xxx&#8221;&gt;<br />
所以，我们所要做的就是在showimg.asp中从数据库中读出来符合条件的<br />
数据，并返回到SRC属性中就可以了，具体代码如下（showimg.asp）：<br />
&lt;%<br />
setconnGraph=server.CreateObject(&#8220;ADODB.connection&#8221;)<br />
connGraph.ConnectionString=&#8221;driver={MicrosoftAccessDriver(*.mdb)};DBQ=&#8221;&amp;<br />
server.MapPath(&#8220;images.mdb&#8221;)&amp;&#8221;;uid=;PWD=;&#8221;<br />
connGraph.Open<br />
setrec=server.createobject(&#8220;ADODB.recordset&#8221;)<br />
strsql=&#8221;selectimgfromimageswhereid=&#8221;&amp;trim(request(&#8220;id&#8221;))<br />
rec.openstrsql,connGraph,1,1<br />
Response.ContentType=&#8221;image/*&#8221;<br />
Response.BinaryWriterec(&#8220;img&#8221;).getChunk(7500000)<br />
rec.close<br />
setrec=nothing<br />
setconnGraph=nothing<br />
%&gt;<br />
注意在输出到浏览器之前一定要指定Response.ContentType=&#8221;image/*&#8221;，<br />
以便正常显示图片。<br />
最后要注意的地方是，我的process.asp中作的处理没有考虑到第一页(upload.htm)中还有其<br />
他数据，比如&lt;INPUT type=tesxt name=userid&gt;等等，如果有这些项目，你的process.asp就<br />
要注意处理掉不必要的数据。<br />
</span></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.1xi.net/asp/asp-tupian-shangchuan/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>php访问查询mysql数据的三种方法</title>
		<link>http://blog.1xi.net/php/php-chaxun-mysq-fangfa</link>
		<comments>http://blog.1xi.net/php/php-chaxun-mysq-fangfa#comments</comments>
		<pubDate>Thu, 30 Jul 2009 03:17:33 +0000</pubDate>
		<dc:creator>FDS</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Mysql]]></category>

		<guid isPermaLink="false">http://blog.1xi.net/php/php-chaxun-mysq-fangfa</guid>
		<description><![CDATA[1. $row = mysql_fetch_row($result); 返回一个规则的数组$row,$row[0]是第一个元素,$row[1]是第二个元素,依次类推&#8230; mysql_num_fields($result) 返回结果的元素个数。 2. $row = mysql_fetch_array($result); 返回一个数组$row. 举例如下: 表结构如下: username &#124; password &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;- bourbon &#124; abc berber &#124; efg 第一次运行运行 $row = mysql_fetch_array($result) 则结果如下: $row[0] = $row["username"] = &#8220;bourbon&#8221; $row[1] = $row["password"] = &#8220;abc&#8221; 第一次运行运行 $row = mysql_fetch_array($result) 则结果如下: $row[0] = $row["username"] = &#8220;berber&#8221; $row[1] = $row["password"] = &#8220;efg&#8221; 3. [...]]]></description>
			<content:encoded><![CDATA[<p>1. $row = mysql_fetch_row($result);<br />
返回一个规则的数组$row,$row[0]是第一个元素,$row[1]是第二个元素,依次类推&#8230;<br />
mysql_num_fields($result) 返回结果的元素个数。</p>
<p>2. $row = mysql_fetch_array($result);</p>
<p>返回一个数组$row. 举例如下:<br />
表结构如下:</p>
<p>username | password<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
bourbon | abc<br />
berber | efg</p>
<p>第一次运行运行 $row = mysql_fetch_array($result) 则结果如下:</p>
<p>$row[0] = $row["username"] = &#8220;bourbon&#8221;<br />
$row[1] = $row["password"] = &#8220;abc&#8221;</p>
<p>第一次运行运行 $row = mysql_fetch_array($result) 则结果如下:</p>
<p>$row[0] = $row["username"] = &#8220;berber&#8221;<br />
$row[1] = $row["password"] = &#8220;efg&#8221;</p>
<p>3. $row = mysql_fetch_object($result);</p>
<p>返回一个对象描述行. 如上例<br />
第一次运行运行$row = mysql_fetch_object($result) 则结果如下:</p>
<p>$row-&gt;username = &#8220;bourbon&#8221;<br />
$row-&gt;password = &#8220;abc&#8221;</p>
<p>第二次运行运行$row = mysql_fetch_object($result) 则结果如下:<br />
$row-&gt;username = &#8220;berber&#8221;<br />
$row-&gt;password = &#8220;efg&#8221;</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.1xi.net/php/php-chaxun-mysq-fangfa/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>在Asp程序中取得表单所有内容的方法</title>
		<link>http://blog.1xi.net/asp/asp-huoqu-biaodan</link>
		<comments>http://blog.1xi.net/asp/asp-huoqu-biaodan#comments</comments>
		<pubDate>Thu, 30 Jul 2009 03:12:29 +0000</pubDate>
		<dc:creator>FDS</dc:creator>
				<category><![CDATA[ASP]]></category>
		<category><![CDATA[表单]]></category>

		<guid isPermaLink="false">http://blog.1xi.net/asp/asp-huoqu-biaodan</guid>
		<description><![CDATA[在Asp中如何得到所有表单的名称跟对应的值。其实，这个问题很简单，但是可能还是有很多人不知道该怎么做，所以特地写下来，仅供参考。在Asp程序中，用来获得客户端数据的对象是 Request，这个对象给我们提供了很多的方法以及属性。]]></description>
			<content:encoded><![CDATA[<p><span id="ArticleContent1_ArticleContent1_lblContent"></span></p>
<p><span style="color: #ff0000;">在Asp中如何得到所有表单的名称跟</span><span style="color: #ff0000;">对应的值</span>。其实，这个问题很简单，但是可能还是有很多人不知道该怎么做，所以特地写下来，仅供参考。在Asp程序中，用来获得客户端数据的对象是 Request，这个对象给我们提供了很多的方法以及属性。比如，有这样一个Form，</p>
<p>&lt;FORM METHOD=POST name=cqq ACTION=&#8221;"&gt;<br />
 &lt;INPUT TYPE=&#8221;text&#8221; NAME=&#8221;username&#8221;&gt;<br />
 &lt;INPUT TYPE=&#8221;text&#8221; NAME=&#8221;password&#8221;&gt;<br />
 &lt;INPUT TYPE=&#8221;checkbox&#8221; NAME=&#8221;sex&#8221; value=&#8221;male&#8221;&gt;<br />
 &lt;INPUT TYPE=&#8221;checkbox&#8221; NAME=&#8221;sex&#8221; value=&#8221;female&#8221;&gt;<br />
 &lt;INPUT TYPE=&#8221;submit&#8221;&gt;<br />
 &lt;/FORM&gt;</p>
<p>         如果我们要取得 username 中的值，我们可以这样写：Request.Form(&#8220;username&#8221;)</p>
<p> 这个大家都会，其实这个Form是一个集合，也就是说表单中的所有的内容都存放在这个集合</p>
<p>当中，我们要取得某个元素的值，只需要在Request.Form() 这里制定元素的名称就可以了，比如</p>
<p>上面的username。</p>
<p>          那么，我们要取得集合中所有的值呢？  那很简单，什么都不用跟就是了，<span style="color: #ff0000;">直接写Request.Form</span></p>
<p>就得到了集合中所有元素的名称跟值。  下面是一个对集合操作的语句：</p>
<p><span style="color: #ff0000;">&lt;%<br />
For each obj in Request.Form<br />
     Response.write obj &amp; &#8221; &#8221; &amp; Request.Form(obj) &amp;  &#8221; &lt;br&gt;&#8221;<br />
Next<br />
%&gt;</p>
<p></span></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.1xi.net/asp/asp-huoqu-biaodan/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>asp开发中textarea一些问题</title>
		<link>http://blog.1xi.net/asp/asp-textarea</link>
		<comments>http://blog.1xi.net/asp/asp-textarea#comments</comments>
		<pubDate>Wed, 24 Jun 2009 04:12:55 +0000</pubDate>
		<dc:creator>FDS</dc:creator>
				<category><![CDATA[ASP]]></category>

		<guid isPermaLink="false">http://blog.1xi.net/asp/asp-textarea</guid>
		<description><![CDATA[使用SQL SERVER的[导入]功能,便可将access数据转换,但要注意原来的&#8217;自增字段&#8217;需要修改,将相应字段标识修改为&#8216;是&#8217;(原来的备注字段也会自动转化为ntext). 由于新闻的添加,修改都是通过使用textarea,首先为了能保留输入内容的格式,在处理添加的页面加入 &#60;% Function SqlStr( data ) SqlStr = &#8220;&#8216;&#8221; &#38; Replace( data, &#8220;&#8216;&#8221;, &#8220;&#8221;&#8221; ) &#38; &#8220;&#8216;&#8221; End Function Function  coder(str) Dim  i If  IsNull(str)  Then  :  coder=&#8221;"  :  Exit  Function  :  End  If For  i  =  1  to  Len(str) Select  case  mid(str,i,1) Case  &#8220;&#60;&#8221;          :  coder  =  coder  &#38;&#8221;&#38;lt;&#8221; Case  &#8220;&#62;&#8221;          :  [...]]]></description>
			<content:encoded><![CDATA[<p>使用SQL SERVER的[导入]功能,便可将access数据转换,但要注意原来的&#8217;<span style="color: #0000ff;">自增字段&#8217;</span>需要修改,将相应字段<span style="background-color: #ffffff; color: #0000ff;">标识<span style="color: #000000;">修改为</span>&#8216;是&#8217;<span style="color: #000000;">(</span></span>原来的备注字段也会自动转化为ntext).</p>
<p>由于新闻的添加,修改都是通过使用textarea,首先为了能保留输入内容的格式,在处理添加的页面加入</p>
<p><span style="background-color: #d3d3d3;">&lt;%<br />
Function SqlStr( data )<br />
SqlStr = &#8220;&#8216;&#8221; &amp; Replace( data, &#8220;&#8216;&#8221;, &#8220;&#8221;&#8221; ) &amp; &#8220;&#8216;&#8221;<br />
End Function<br />
Function  coder(str)<br />
Dim  i<br />
If  IsNull(str)  Then  :  coder=&#8221;"  :  Exit  Function  :  End  If<br />
For  i  =  1  to  Len(str)<br />
Select  case  mid(str,i,1)<br />
Case  &#8220;&lt;&#8221;          :  coder  =  coder  &amp;&#8221;&amp;lt;&#8221;<br />
Case  &#8220;&gt;&#8221;          :  coder  =  coder  &amp;&#8221;&amp;gt;&#8221;<br />
Case  &#8220;&amp;&#8221;          :  coder  =  coder  &amp;&#8221;&amp;amp;&#8221;<br />
Case  chr(9)    :  coder  =  coder  &amp;&#8221;&amp;nbsp;&amp;nbsp;&#8221;<br />
Case  VBCrLf    :  coder  =  coder  &amp;&#8221;&lt;br&gt;&#8221;<br />
Case  chr(32)  :  coder  =  coder  &amp;&#8221;&amp;nbsp;&#8221;<br />
Case  chr(34)  :  coder  =  coder  &amp;&#8221;&amp;quot;&#8221;<br />
Case  chr(39)  :  coder  =  coder  &amp;&#8221;&amp;#39;&#8221;<br />
Case  Else        :  coder  =  coder  &amp;  mid(str,i,1)<br />
End  Select<br />
Next<br />
End  Function </span></p>
<p><span style="background-color: #d3d3d3;"> </span></p>
<p><span style="background-color: #d3d3d3;">content=request(&#8220;content&#8221;)&#8217;正文<br />
content=replace(content,&#8221;&amp;nbsp;&#8221;,&#8221; &#8220;)   &#8216;此处处理是因为修改页面所加入空格会被转化为&amp;nbsp; ,在此先过滤<br />
content=coder(content)</span></p>
<p><span style="background-color: #d3d3d3;"> </span></p>
<p><span style="background-color: #d3d3d3;">%&gt;</span></p>
<p>在修改页面</p>
<p>&lt;%</p>
<p><span style="background-color: #d3d3d3;">rs.Open sql, conn, adOpenStatic</span><br />
<span style="background-color: #d3d3d3;">content=rs(&#8220;正文&#8221;)</span> <span style="color: #ffa500;">&#8216;此处一定要写,倘若直接在textarea处写</span></p>
<p><span style="color: #ffa500;"> &#8216;&lt;textarea rows=&#8221;7&#8243; name=&#8221;t&#8221; cols=&#8221;47&#8243; &gt;&lt;%=rs(&#8220;正文&#8221;) %&gt;&lt;/textarea &gt;“则无法显示(我就被此处</span></p>
<p><span style="color: #ffa500;"> &#8216;困了好久,还以为长字段不能使用ntext而只能使用text或varchar呢)</span></p>
<p>%&gt;</p>
<p>在显示页面</p>
<p><span style="background-color: #d3d3d3;">&lt;%</span></p>
<p><span style="background-color: #d3d3d3;">rs.Open sql, conn, adOpenStatic<br />
content=rs(&#8220;content&#8221;)   &#8216;一定先放到变量中,否则可能无法显示<br />
content=replace(content,vbcrlf,&#8221;&lt;br&gt;&#8221;+vbcrlf)   &#8216;经过此处处理,可显示出正确的段落格式</span></p>
<p><span style="background-color: #d3d3d3;">%&gt;</span></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.1xi.net/asp/asp-textarea/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>ASP控制每页打印行数的方法</title>
		<link>http://blog.1xi.net/asp/asp-kongzhi-dayin-hangshu</link>
		<comments>http://blog.1xi.net/asp/asp-kongzhi-dayin-hangshu#comments</comments>
		<pubDate>Mon, 11 May 2009 10:12:27 +0000</pubDate>
		<dc:creator>FDS</dc:creator>
				<category><![CDATA[ASP]]></category>
		<category><![CDATA[分页]]></category>
		<category><![CDATA[打印]]></category>
		<category><![CDATA[网页]]></category>

		<guid isPermaLink="false">http://blog.1xi.net/asp/asp-kongzhi-dayin-hangshu</guid>
		<description><![CDATA[在日常工作中，打印文档经常要使用，但是网页打印起来大部分都是不能控制的，这里分享一个用 ASP控制每页打印行数的方法。也许对你有一点点的启发哦！]]></description>
			<content:encoded><![CDATA[<p><span id="ArticleContent1_ArticleContent1_lblContent">在日常工作中，打印文档经常要使用，但是网页打印起来大部分都是不能控制的，这里分享一个用 ASP控制每页打印行数的方法。也许对你有一点点的启发哦！&lt;%<br />
pagenum=55&#8242;指定打印行数<br />
%&gt;<br />
&lt;HTML&gt;<br />
&lt;HEAD&gt;<br />
&lt;meta http-equiv=&#8221;Content-Type&#8221; content=&#8221;text/html; charset=gb2312&#8243;&gt;<br />
&lt;TITLE&gt;销售利润明细报表打印&lt;/TITLE&gt;<br />
&lt;style type=&#8221;text/css&#8221;&gt;<br />
td {font-size:9pt; color:#000000}<br />
A{text-decoration:none}<br />
A:hover{color:#FF0000;text-decoration:derline}<br />
.break{page-break-before:always}<br />
&lt;/style&gt;<br />
&lt;/HEAD&gt;<br />
&lt;script language=&#8221;javascript&#8221;&gt;<br />
window.print()<br />
&lt;/script&gt;<br />
&lt;BODY style=&#8221;border:none&#8221; topmargin=&#8221;0&#8243; leftmargin=&#8221;6&#8243; onload=&#8221;javascrpt:pagesetup_default();&#8221;&gt;<br />
&lt;script language=&#8221;VbScript&#8221;&gt;<br />
dim hkey_root,hkey_path,hkey_key<br />
hkey_root=&#8221;HKEY_CURRENT_USER&#8221;<br />
hkey_path=&#8221;\Software\Microsoft\Internet Explorer\PageSetup&#8221;<br />
function pagesetup_default()<br />
    on error resume next<br />
    Set RegWsh = CreateObject(&#8220;WScript.Shell&#8221;)<br />
    hkey_key=&#8221;\header&#8221;   <br />
    RegWsh.RegWrite hkey_root+hkey_path+hkey_key,&#8221;&amp;b页&amp;p/&amp;P&#8221;<br />
    hkey_key=&#8221;\footer&#8221;<br />
    RegWsh.RegWrite hkey_root+hkey_path+hkey_key,&#8221;"<br />
end function<br />
&lt;/script&gt;</p>
<p>&lt;%<br />
kdname1=trim(request(&#8220;kdname1&#8243;))<br />
kdname2=trim(request(&#8220;kdname2&#8243;))<br />
keyword1=trim(request(&#8220;keyword1&#8243;))<br />
keyword2=trim(request(&#8220;keyword2&#8243;))</p>
<p> if keyword1&lt;&gt;&#8221;" then<br />
 today=keyword1<br />
 else<br />
 if kdname1=&#8221;" then<br />
 today=year(date())&amp;&#8221;-&#8221;&amp;month(date())<br />
 else<br />
 today=kdname1&amp;&#8221;至&#8221;&amp;kdname2<br />
 end if<br />
 end if<br />
%&gt;<br />
  &lt;table border=&#8221;0&#8243; cellspacing=&#8221;0&#8243; cellpadding=&#8221;0&#8243; align=&#8221;center&#8221; width=&#8221;740&#8243;  height=&#8221;30&#8243;&gt;<br />
    &lt;tr&gt;<br />
      &lt;td align=&#8221;center&#8221;&gt;销售利润汇总报表&lt;/td&gt;<br />
    &lt;/tr&gt;<br />
  &lt;/table&gt;</p>
<p>&lt;% <br />
 strSQL=&#8221;select autoid,sellautoid,productxili,productname,productsize,productnum,productdan,productjia,chaoshi,tiaoma,youhui,fukuan,moncount1,gongshang,lirun1,username,indate,fudate from sell where officename=&#8217;&#8221;&amp;trim(request.cookies(&#8220;Myoffice&#8221;))&amp;&#8221;&#8216; and monthjie=&#8217;0&#8242; and (year(indate)=year(getdate()) and month(indate)=month(getdate())) and zhuofei is null order by autoid desc&#8221;            <br />
 set rs1=server.createobject(&#8220;adodb.recordset&#8221;)             <br />
 rs1.open strSQL,conn,1,1<br />
%&gt;              <br />
  &lt;table border=&#8221;1&#8243; cellspacing=&#8221;0&#8243; cellpadding=&#8221;0&#8243; align=&#8221;center&#8221; style=&#8221;border-collapse: collapse&#8221;  bordercolor=&#8221;#000000&#8243; width=&#8221;740&#8243;&gt;            <br />
    &lt;tr&gt;            <br />
      &lt;td align=&#8221;center&#8221; height=&#8221;20&#8243; bgcolor=&#8221;#BDCBEE&#8221; width=&#8221;70&#8243; &gt;销售单号&lt;/td&gt;            <br />
      &lt;td align=&#8221;center&#8221; height=&#8221;20&#8243; bgcolor=&#8221;#BDCBEE&#8221; width=&#8221;168&#8243; &gt;商品名称（规格）&lt;/td&gt;            <br />
      &lt;td align=&#8221;center&#8221; height=&#8221;20&#8243; bgcolor=&#8221;#BDCBEE&#8221; width=&#8221;121&#8243; &gt;客户&lt;/td&gt;            <br />
      &lt;td align=&#8221;center&#8221; height=&#8221;20&#8243; bgcolor=&#8221;#BDCBEE&#8221; width=&#8221;30&#8243; &gt;数量&lt;/td&gt;            <br />
      &lt;td align=&#8221;center&#8221; height=&#8221;20&#8243; bgcolor=&#8221;#BDCBEE&#8221; width=&#8221;24&#8243; &gt;单位&lt;/td&gt;            <br />
      &lt;td align=&#8221;center&#8221; height=&#8221;20&#8243; bgcolor=&#8221;#BDCBEE&#8221; width=&#8221;50&#8243; &gt;销售价&lt;/td&gt;            <br />
      &lt;td align=&#8221;center&#8221; height=&#8221;20&#8243; bgcolor=&#8221;#BDCBEE&#8221; width=&#8221;23&#8243; &gt;折%&lt;/td&gt;            <br />
      &lt;td align=&#8221;center&#8221; height=&#8221;20&#8243; bgcolor=&#8221;#BDCBEE&#8221; width=&#8221;52&#8243; &gt;进货价&lt;/td&gt;            <br />
      &lt;td align=&#8221;center&#8221; height=&#8221;20&#8243; bgcolor=&#8221;#BDCBEE&#8221; width=&#8221;55&#8243; &gt;小计&lt;/td&gt;            <br />
      &lt;td align=&#8221;center&#8221; height=&#8221;20&#8243; bgcolor=&#8221;#BDCBEE&#8221; width=&#8221;45&#8243; &gt;利润&lt;/td&gt;            <br />
      &lt;td align=&#8221;center&#8221; height=&#8221;20&#8243; bgcolor=&#8221;#BDCBEE&#8221; width=&#8221;25&#8243; &gt;付款&lt;/td&gt;            <br />
      &lt;td align=&#8221;center&#8221; height=&#8221;20&#8243; bgcolor=&#8221;#BDCBEE&#8221; width=&#8221;61&#8243; &gt;销售日期&lt;/td&gt;            <br />
    &lt;/tr&gt;<br />
  &lt;/table&gt;<br />
&lt;%            <br />
  moncount2=0            <br />
  moncount5=0            <br />
  Do while not rs1.eof <br />
%&gt;<br />
&lt;table border=&#8221;1&#8243; cellpadding=&#8221;0&#8243; cellspacing=&#8221;0&#8243; width=&#8221;740&#8243; align=&#8221;center&#8221; style=&#8221;border-collapse:collapse; font-size:10pt;color:#000000&#8243; bordercolor=&#8221;#000000&#8243;&gt;<br />
&lt;%<br />
for i=1 to pagenum<br />
if not rs1.eof then<br />
  if trim(rs1(&#8220;fukuan&#8221;))=&#8221;欠款&#8221; then            <br />
  moncount6=Csng(rs1(&#8220;lirun1&#8243;))            <br />
  moncount5=moncount5+moncount6            <br />
  else            <br />
  moncount3=Csng(rs1(&#8220;lirun1&#8243;))            <br />
  moncount2=moncount2+moncount3            <br />
  end if <br />
%&gt;     <br />
    &lt;tr&gt;            <br />
      &lt;td height=&#8221;18&#8243; width=&#8221;70&#8243;&gt;&amp;nbsp;&lt;%=rs1(&#8220;sellautoid&#8221;)%&gt;&lt;/td&gt;            <br />
      &lt;td height=&#8221;18&#8243; width=&#8221;168&#8243;&gt;&lt;%=Decode(rs1(&#8220;productname&#8221;))%&gt;&amp;nbsp;&lt;%=rs1(&#8220;productsize&#8221;)%&gt;&lt;/td&gt;            <br />
      &lt;td height=&#8221;18&#8243; width=&#8221;121&#8243;&gt;&lt;%=left(rs1(&#8220;gongshang&#8221;),9)%&gt;&lt;/td&gt;           <br />
      &lt;td height=&#8221;18&#8243; width=&#8221;30&#8243; align=&#8221;center&#8221;&gt;&lt;%=rs1(&#8220;productnum&#8221;)%&gt;&lt;/td&gt;           <br />
      &lt;td height=&#8221;18&#8243; width=&#8221;24&#8243; align=&#8221;center&#8221;&gt;&lt;%=rs1(&#8220;productdan&#8221;)%&gt;&lt;/td&gt;           <br />
      &lt;td height=&#8221;18&#8243; width=&#8221;50&#8243; align=&#8221;right&#8221;&gt;&lt;%=formatNumber(rs1(&#8220;chaoshi&#8221;),varnum,-1)%&gt;&lt;/td&gt;           <br />
      &lt;td height=&#8221;18&#8243; width=&#8221;23&#8243; align=&#8221;center&#8221;&gt;&lt;%=rs1(&#8220;youhui&#8221;)%&gt;&lt;/td&gt;           <br />
      &lt;td height=&#8221;18&#8243; width=&#8221;52&#8243; align=&#8221;right&#8221;&gt;&lt;%=formatNumber(rs1(&#8220;productjia&#8221;),varnum,-1)%&gt;&lt;/td&gt;           <br />
      &lt;td height=&#8221;18&#8243; width=&#8221;55&#8243; align=&#8221;right&#8221;&gt;&lt;%=formatNumber(rs1(&#8220;moncount1&#8243;),varnum,-1)%&gt;&lt;/td&gt;           <br />
      &lt;td height=&#8221;18&#8243; width=&#8221;45&#8243; align=&#8221;right&#8221;&gt;&lt;%=formatNumber(rs1(&#8220;lirun1&#8243;),varnum,-1)%&gt;&lt;/td&gt;           <br />
      &lt;td align=&#8221;center&#8221; height=&#8221;18&#8243; width=&#8221;25&#8243;&gt;&lt;%if trim(rs1(&#8220;fukuan&#8221;))=&#8221;欠款&#8221; then%&gt;&lt;font color=blue&gt;&lt;%=rs1(&#8220;fukuan&#8221;)%&gt;&lt;/font&gt;&lt;%else%&gt;&lt;%=rs1(&#8220;fukuan&#8221;)%&gt;&lt;%end if%&gt;&lt;/td&gt;           <br />
      &lt;td height=&#8221;18&#8243; width=&#8221;61&#8243;&gt;&lt;%=rs1(&#8220;indate&#8221;)%&gt;&lt;/td&gt;           <br />
    &lt;/tr&gt;<br />
&lt;%<br />
rs1.movenext<br />
end if<br />
next<br />
%&gt;<br />
&lt;/table&gt;<br />
&lt;%<br />
if not rs1.eof and i=pagenum+1 then &#8216;添加分页标记<br />
%&gt;<br />
  &lt;div class=&#8221;break&#8221;&gt;&amp;nbsp;&lt;/div&gt;<br />
  &lt;table border=&#8221;0&#8243; cellpadding=&#8221;0&#8243; cellspacing=&#8221;0&#8243; width=&#8221;740&#8243; height=&#8221;12&#8243; align=&#8221;center&#8221;&gt;&lt;tr&gt;&lt;td height=&#8221;12&#8243;&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;<br />
  &lt;table border=&#8221;1&#8243; cellspacing=&#8221;0&#8243; cellpadding=&#8221;0&#8243; align=&#8221;center&#8221; width=&#8221;740&#8243; style=&#8221;border-collapse: collapse&#8221;  bordercolor=&#8221;#000000&#8243;&gt;<br />
    &lt;tr&gt;            <br />
      &lt;td align=&#8221;center&#8221; height=&#8221;20&#8243; bgcolor=&#8221;#BDCBEE&#8221; width=&#8221;70&#8243; &gt;销售单号&lt;/td&gt;            <br />
      &lt;td align=&#8221;center&#8221; height=&#8221;20&#8243; bgcolor=&#8221;#BDCBEE&#8221; width=&#8221;168&#8243; &gt;商品名称（规格）&lt;/td&gt;            <br />
      &lt;td align=&#8221;center&#8221; height=&#8221;20&#8243; bgcolor=&#8221;#BDCBEE&#8221; width=&#8221;121&#8243; &gt;客户&lt;/td&gt;            <br />
      &lt;td align=&#8221;center&#8221; height=&#8221;20&#8243; bgcolor=&#8221;#BDCBEE&#8221; width=&#8221;30&#8243; &gt;数量&lt;/td&gt;            <br />
      &lt;td align=&#8221;center&#8221; height=&#8221;20&#8243; bgcolor=&#8221;#BDCBEE&#8221; width=&#8221;24&#8243; &gt;单位&lt;/td&gt;            <br />
      &lt;td align=&#8221;center&#8221; height=&#8221;20&#8243; bgcolor=&#8221;#BDCBEE&#8221; width=&#8221;50&#8243; &gt;销售价&lt;/td&gt;            <br />
      &lt;td align=&#8221;center&#8221; height=&#8221;20&#8243; bgcolor=&#8221;#BDCBEE&#8221; width=&#8221;23&#8243; &gt;折%&lt;/td&gt;            <br />
      &lt;td align=&#8221;center&#8221; height=&#8221;20&#8243; bgcolor=&#8221;#BDCBEE&#8221; width=&#8221;52&#8243; &gt;进货价&lt;/td&gt;            <br />
      &lt;td align=&#8221;center&#8221; height=&#8221;20&#8243; bgcolor=&#8221;#BDCBEE&#8221; width=&#8221;55&#8243; &gt;小计&lt;/td&gt;            <br />
      &lt;td align=&#8221;center&#8221; height=&#8221;20&#8243; bgcolor=&#8221;#BDCBEE&#8221; width=&#8221;45&#8243; &gt;利润&lt;/td&gt;            <br />
      &lt;td align=&#8221;center&#8221; height=&#8221;20&#8243; bgcolor=&#8221;#BDCBEE&#8221; width=&#8221;25&#8243; &gt;付款&lt;/td&gt;            <br />
      &lt;td align=&#8221;center&#8221; height=&#8221;20&#8243; bgcolor=&#8221;#BDCBEE&#8221; width=&#8221;61&#8243; &gt;销售日期&lt;/td&gt;            <br />
    &lt;/tr&gt;<br />
&lt;%<br />
end if<br />
loop<br />
rs1.close    <br />
set rs1=nothing    <br />
%&gt; <br />
&lt;/table&gt; <br />
  &lt;table border=&#8221;1&#8243; cellpadding=&#8221;0&#8243; cellspacing=&#8221;0&#8243; width=&#8221;740&#8243; height=&#8221;20&#8243; align=&#8221;center&#8221; style=&#8221;border-collapse: collapse&#8221;  bordercolor=&#8221;#000000&#8243;&gt;<br />
    &lt;tr&gt;           <br />
       &lt;td&gt;&lt;font color=&#8221;#FF0000&#8243;&gt;&lt;b&gt;现金利润：&lt;/b&gt;&lt;/font&gt;&lt;b&gt;&lt;%=formatNumber(moncount2,varnum,-1)%&gt;&lt;/b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;%if moncount5&lt;&gt;&#8221;" then%&gt;&lt;b&gt;&lt;font color=&#8221;#FF0000&#8243;&gt;欠款利润&lt;/font&gt;：&lt;%=formatNumber(moncount5,varnum,-1)%&gt;&lt;/b&gt;&lt;%end if%&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;%if moncount5&lt;&gt;&#8221;" then%&gt;&lt;b&gt;&lt;font color=&#8221;#FF0000&#8243;&gt;毛利合计：&lt;/font&gt;&lt;%=formatNumber(moncount5+moncount2,varnum,-1)%&gt;&lt;/b&gt;&lt;%end if%&gt;&lt;/td&gt;           <br />
     &lt;/tr&gt;  <br />
   &lt;/table&gt;           <br />
&lt;%<br />
end if<br />
conn.close<br />
set conn=nothing<br />
%&gt; </p>
<p>&lt;/BODY&gt;<br />
&lt;/HTML&gt;</p>
<p></span></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.1xi.net/asp/asp-kongzhi-dayin-hangshu/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>初识“微软ISA认证”</title>
		<link>http://blog.1xi.net/kaoshi/isa-renzheng</link>
		<comments>http://blog.1xi.net/kaoshi/isa-renzheng#comments</comments>
		<pubDate>Mon, 04 May 2009 10:05:31 +0000</pubDate>
		<dc:creator>FDS</dc:creator>
				<category><![CDATA[计算机考试]]></category>
		<category><![CDATA[认证]]></category>

		<guid isPermaLink="false">http://blog.1xi.net/kaoshi/isa-renzheng</guid>
		<description><![CDATA[【简 介】 随着网络安全行业的升温，微软继思科成功推出安全认证专家(CCSP)后，又新增两门安全类专业方向的认证&#8211;MCSA: Security和MCSE: Security，继此，又推出ISA认证。   function goforum(){ var ff=document.all.forum.options[document.all.forum.selectedIndex].value; window.location.href=ff; return false; } 它是针对那些部署和管理部门级应用程序、组件、Web或桌面系统客户端及网络安全服务的专业人员而提供的。其工作角色涵盖了从需求实现到解决方案建立、部署与维护在内的各种任务。大家也许对它还比较陌生，下面我们进行一下简单的介绍： 业界评论 微软ISA(Internet Security and Acceleration ) SERVER 2000软件，是微软推出的防火墙服务器软件，堪称网络安全与速度的完美结合。目前，业界使用这个软件的企业越来越多通过这门认证，可得到MCP（产品专家）证书。 认识ISA ISA Server通过集成一个可扩展的多层企业级防火墙和一个可伸缩的高性能Web缓存，从而实现合二为一的网络安全和加速服务器。 ISA Server有很强的自定义和扩展性。它包括一个综合的软件开发包（SDK）和应用程序接口 (API)，方便本地合作伙伴能够快速、方便地为企业扩展其安全和缓存解决方案。 ISA Server能够帮助企业发布Exchange和IIS，同时，还集成了入侵检测功能、H.323（关守）等模块。 关于考试 考试号:70-227 考试科目(中文) :安装、配置和管理微软Internet安全和加速(ISA)服务器2000企业版 考试题数：50道题 考试时间：170分钟 满分：1000]]></description>
			<content:encoded><![CDATA[<p>【简 介】<br />
随着网络安全行业的升温，微软继思科成功推出安全认证专家(CCSP)后，又新增两门安全类专业方向的认证&#8211;MCSA: Security和MCSE: Security，继此，又推出ISA认证。   function goforum(){ var ff=document.all.forum.options[document.all.forum.selectedIndex].value; window.location.href=ff; return false; } 它是针对那些部署和管理部门级应用程序、组件、Web或桌面系统客户端及网络安全服务的专业人员而提供的。其工作角色涵盖了从需求实现到解决方案建立、部署与维护在内的各种任务。大家也许对它还比较陌生，下面我们进行一下简单的介绍：</p>
<p>业界评论</p>
<p>微软ISA(Internet Security and Acceleration ) SERVER 2000软件，是微软推出的防火墙服务器软件，堪称网络安全与速度的完美结合。目前，业界使用这个软件的企业越来越多通过这门认证，可得到MCP（产品专家）证书。</p>
<p>认识ISA</p>
<p>ISA Server通过集成一个可扩展的多层企业级防火墙和一个可伸缩的高性能Web缓存，从而实现合二为一的网络安全和加速服务器。</p>
<p>ISA Server有很强的自定义和扩展性。它包括一个综合的软件开发包（SDK）和应用程序接口 (API)，方便本地合作伙伴能够快速、方便地为企业扩展其安全和缓存解决方案。</p>
<p>ISA Server能够帮助企业发布Exchange和IIS，同时，还集成了入侵检测功能、H.323（关守）等模块。</p>
<p>关于考试</p>
<p>考试号:70-227</p>
<p>考试科目(中文) :安装、配置和管理微软Internet安全和加速(ISA)服务器2000企业版</p>
<p>考试题数：50道题</p>
<p>考试时间：170分钟</p>
<p>满分：1000</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.1xi.net/kaoshi/isa-renzheng/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>3个步骤来实现asp模块化分页</title>
		<link>http://blog.1xi.net/asp/mokuai-fenye</link>
		<comments>http://blog.1xi.net/asp/mokuai-fenye#comments</comments>
		<pubDate>Mon, 13 Apr 2009 14:40:20 +0000</pubDate>
		<dc:creator>FDS</dc:creator>
				<category><![CDATA[ASP]]></category>
		<category><![CDATA[分页]]></category>

		<guid isPermaLink="false">http://blog.1xi.net/asp/mokuai-fenye</guid>
		<description><![CDATA[ 通过3个步骤来实现模块化分页，1、查询语句块，2、显示记录块，3、输出分页效果 1、查询语句块 &#60;% 取得当前文件名 temp = Split(request.ServerVariables(&#8220;URL&#8221;), &#8220;/&#8221;) fy = temp(UBound(temp)) set rs=server.createobject(&#8220;adodb.recordset&#8221;) if not isempty(request(&#8220;page&#8221;)) then   pagecount=cint(request(&#8220;page&#8221;))   else   pagecount=1   end if sql=&#8221;select  查询语句&#8221; rs.open sql,conn,1,1 rs.pagesize=10  分页记录数 if pagecount&#62;rs.pagecount or pagecount&#60;=0 then              pagecount=1              end if             if rs.eof and rs.bof then%&#62; &#60;div align=&#8221;center&#8221; class=&#8221;001&#8243;&#62;&#60;br&#62; 对不起，没有符合搜索条件的记录！&#60;br&#62; &#60;/div&#62; 2、显示记录块 &#60;% else rs.AbsolutePage=pagecount do while not rs.eof %&#62; [...]]]></description>
			<content:encoded><![CDATA[<p> 通过3个步骤来实现模块化分页，1、查询语句块，2、显示记录块，3、输出分页效果</p>
<blockquote><p>1、查询语句块</p>
<p>&lt;%<br />
取得当前文件名<br />
temp = Split(request.ServerVariables(&#8220;URL&#8221;), &#8220;/&#8221;)<br />
fy = temp(UBound(temp))<br />
set rs=server.createobject(&#8220;adodb.recordset&#8221;)<br />
if not isempty(request(&#8220;page&#8221;)) then  <br />
pagecount=cint(request(&#8220;page&#8221;))  <br />
else  <br />
pagecount=1  <br />
end if<br />
sql=&#8221;select  查询语句&#8221;<br />
rs.open sql,conn,1,1<br />
rs.pagesize=10  分页记录数<br />
if pagecount&gt;rs.pagecount or pagecount&lt;=0 then             <br />
pagecount=1             <br />
end if            <br />
if rs.eof and rs.bof then%&gt;</p>
<p>&lt;div align=&#8221;center&#8221; class=&#8221;001&#8243;&gt;&lt;br&gt;<br />
对不起，没有符合搜索条件的记录！&lt;br&gt;<br />
&lt;/div&gt;</p></blockquote>
<blockquote><p>2、显示记录块</p>
<p>&lt;%<br />
else<br />
rs.AbsolutePage=pagecount<br />
do while not rs.eof %&gt;</p>
<p>显示的记录</p>
<p>&lt;% i=i+2                                                                                                 <br />
rs.movenext                                                                                                 <br />
if i&gt;=rs.PageSize then exit do<br />
loop                                                                   <br />
%&gt;</p></blockquote>
<blockquote><p>3、输出分页效果<br />
&lt;table width=&#8221;778&#8243; border=&#8221;0&#8243; align=&#8221;center&#8221; cellpadding=&#8221;0&#8243; cellspacing=&#8221;0&#8243;&gt;<br />
  &lt;tr align=&#8221;center&#8221;&gt;<br />
    &lt;% if rs.pagecount=1 then %&gt;<br />
    &lt;td height=&#8221;35&#8243; colspan=&#8221;4&#8243; class=001&gt;&lt;font color=&#8221;#000000&#8243;&gt;共有[&lt;font color="#ff0000"&gt;&lt;%=rs.recordcount%&gt;&lt;/font&gt;]条信息 当前显示第 &lt;font color=&#8221;red&#8221;&gt;1～&lt;%=rs.recordcount%&gt;&lt;/font&gt;条&lt;/font&gt;&lt;/td&gt;<br />
  &lt;/tr&gt;<br />
  &lt;tr&gt;<br />
    &lt;%else%&gt;<br />
    &lt;td width=&#8221;19%&#8221; height=&#8221;35&#8243; align=&#8221;center&#8221; valign=&#8221;middle&#8221; class=001&gt;&lt;font color=&#8221;#000000&#8243;&gt;<br />
      &lt;% page_start=(pagecount-1)*rs.pagesize<br />
            if pagecount=1 then page_start=1<br />
      page_end=rs.pagesize*pagecount<br />
      if pagecount*rs.pagesize=&gt;rs.recordcount then page_end=rs.recordcount end if%&gt;<br />
      共有[&lt;font color="#ff0000"&gt;&lt;%=rs.recordcount%&gt;&lt;/font&gt;]信息&lt;/font&gt;&lt;/td&gt;<br />
    &lt;td width=&#8221;58%&#8221; height=&#8221;30&#8243; align=&#8221;center&#8221; class=&#8221;fy&#8221;&gt;&lt;font color=&#8221;#000000&#8243;&gt;<br />
          &lt;%<br />
    if pagecount&gt;5 and pagecount&lt; rs.PageCount-5 and rs.pagecount&gt;10 then<br />
    qizu=pagecount-4<br />
    min=pagecount+5<br />
    response.write &#8220;&lt;a href=&#8221;&amp;source&amp;&#8221;?page=1&amp;sortid=&#8221;&amp;sortid&amp;&#8221;&amp;typeid=&#8221;&amp;typeid&amp;&#8221;&amp;qylb=&#8221;&amp;qylb&amp;&#8221;&amp;title=&#8221;&amp;title&amp;&#8221;&amp;cityid=&#8221;&amp;cityid&amp;&#8221;&gt;&lt;font color=&#8217;0000BE&#8217;&gt;首页&lt;/font&gt;&lt;/a&gt;&amp;nbsp;&#8221;<br />
    response.write &#8220;&lt;a href=&#8221;&amp;source&amp;&#8221;?page=&#8221;+cstr(pagecount-1)+&#8221;&amp;sortid=&#8221;&amp;sortid&amp;&#8221;&amp;typeid=&#8221;&amp;typeid&amp;&#8221;&amp;qylb=&#8221;&amp;qylb&amp;&#8221;&amp;title=&#8221;&amp;title&amp;&#8221;&amp;cityid=&#8221;&amp;cityid&amp;&#8221;&gt;&lt;font color=&#8217;0000BE&#8217;&gt;上一页&lt;/font&gt;&lt;/a&gt;&amp;nbsp;&#8221;                                                    <br />
    for ipage=qizu to min<br />
             if ipage&lt;&gt;pagecount then<br />
             response.write &#8220;&lt;a href=&#8221;&amp;source&amp;&#8221;?page=&#8221;+cstr(ipage)+&#8221;&amp;sortid=&#8221;&amp;sortid&amp;&#8221;&amp;typeid=&#8221;&amp;typeid&amp;&#8221;&amp;qylb=&#8221;&amp;qylb&amp;&#8221;&amp;cityid=&#8221;&amp;cityid&amp;&#8221;&gt;&lt;font color=&#8217;0000BE&#8217;&gt;&#8221;+cstr(ipage)+&#8221;&lt;/font&gt;&lt;/a&gt;&amp;nbsp;&#8221;<br />
             else<br />
             response.write &#8220;&lt;font color=&#8217;#FF0000&#8242;&gt;&#8221;&amp;ipage&amp;&#8221;&lt;/font&gt; &#8220;                                               <br />
             end if<br />
    next<br />
    response.write &#8220;&lt;a href=&#8221;&amp;source&amp;&#8221;?page=&#8221;+cstr(pagecount+1)+&#8221;&amp;sortid=&#8221;&amp;sortid&amp;&#8221;&amp;typeid=&#8221;&amp;typeid&amp;&#8221;&amp;qylb=&#8221;&amp;qylb&amp;&#8221;&amp;title=&#8221;&amp;title&amp;&#8221;&amp;cityid=&#8221;&amp;cityid&amp;&#8221;&gt;&lt;font color=&#8217;0000BE&#8217;&gt;下一页&lt;/font&gt;&lt;/a&gt;&amp;nbsp;&#8221;<br />
    response.write &#8220;&lt;a href=&#8221;&amp;source&amp;&#8221;?page=&#8221;+cstr(rs.PageCount)+&#8221;&amp;sortid=&#8221;&amp;sortid&amp;&#8221;&amp;typeid=&#8221;&amp;typeid&amp;&#8221;&amp;qylb=&#8221;&amp;qylb&amp;&#8221;&amp;title=&#8221;&amp;title&amp;&#8221;&amp;cityid=&#8221;&amp;cityid&amp;&#8221;&gt;&lt;font color=&#8217;0000BE&#8217;&gt;尾页&lt;/font&gt;&lt;/a&gt;&#8221;<br />
    end if<br />
    if rs.PageCount&lt;11 then<br />
    for ipage=1 to rs.PageCount<br />
             if ipage&lt;&gt;pagecount then<br />
             response.write &#8220;&lt;a href=&#8221;&amp;source&amp;&#8221;?page=&#8221;+cstr(ipage)+&#8221;&amp;sortid=&#8221;&amp;sortid&amp;&#8221;&amp;typeid=&#8221;&amp;typeid&amp;&#8221;&amp;qylb=&#8221;&amp;qylb&amp;&#8221;&amp;cityid=&#8221;&amp;cityid&amp;&#8221;&gt;&lt;font color=&#8217;0000BE&#8217;&gt;&#8221;+cstr(ipage)+&#8221;&lt;/font&gt;&lt;/a&gt;&amp;nbsp;&#8221;<br />
             else<br />
             response.write &#8220;&lt;font color=&#8217;#FF0000&#8242;&gt;&#8221;&amp;ipage&amp;&#8221;&lt;/font&gt; &#8220;                                               <br />
             end if<br />
    next<br />
    end if<br />
    if pagecount &lt; 6 and rs.PageCount&gt;10 then<br />
    for ipage=1 to 10<br />
             if ipage&lt;&gt;pagecount then<br />
             response.write &#8220;&lt;a href=&#8221;&amp;source&amp;&#8221;?page=&#8221;+cstr(ipage)+&#8221;&amp;sortid=&#8221;&amp;sortid&amp;&#8221;&amp;typeid=&#8221;&amp;typeid&amp;&#8221;&amp;qylb=&#8221;&amp;qylb&amp;&#8221;&amp;cityid=&#8221;&amp;cityid&amp;&#8221;&gt;&lt;font color=&#8217;0000BE&#8217;&gt;&#8221;+cstr(ipage)+&#8221;&lt;/font&gt;&lt;/a&gt;&amp;nbsp;&#8221;<br />
             else<br />
             response.write &#8220;&lt;font color=&#8217;#FF0000&#8242;&gt;&#8221;&amp;ipage&amp;&#8221;&lt;/font&gt; &#8220;                                               <br />
             end if<br />
    next<br />
    response.write &#8220;&lt;a href=&#8221;&amp;source&amp;&#8221;?page=&#8221;+cstr(rs.PageCount)+&#8221;&amp;sortid=&#8221;&amp;sortid&amp;&#8221;&amp;typeid=&#8221;&amp;typeid&amp;&#8221;&amp;qylb=&#8221;&amp;qylb&amp;&#8221;&amp;title=&#8221;&amp;title&amp;&#8221;&amp;cityid=&#8221;&amp;cityid&amp;&#8221;&gt;&lt;font color=&#8217;0000BE&#8217;&gt;尾页&lt;/font&gt;&lt;/a&gt;&#8221;<br />
    end if<br />
    if pagecount&gt;rs.PageCount-6 and rs.PageCount&gt;10 then<br />
    response.write &#8220;&lt;a href=&#8221;&amp;source&amp;&#8221;?page=1&amp;sortid=&#8221;&amp;sortid&amp;&#8221;&amp;typeid=&#8221;&amp;typeid&amp;&#8221;&amp;qylb=&#8221;&amp;qylb&amp;&#8221;&amp;title=&#8221;&amp;title&amp;&#8221;&amp;cityid=&#8221;&amp;cityid&amp;&#8221;&gt;&lt;font color=&#8217;0000BE&#8217;&gt;首页&lt;/font&gt;&lt;/a&gt;&amp;nbsp;&#8221;  <br />
    for ipage=rs.PageCount-9 to rs.PageCount<br />
             if ipage&lt;&gt;pagecount then<br />
             response.write &#8220;&lt;a href=&#8221;&amp;source&amp;&#8221;?page=&#8221;+cstr(ipage)+&#8221;&amp;sortid=&#8221;&amp;sortid&amp;&#8221;&amp;typeid=&#8221;&amp;typeid&amp;&#8221;&amp;qylb=&#8221;&amp;qylb&amp;&#8221;&amp;cityid=&#8221;&amp;cityid&amp;&#8221;&gt;&lt;font color=&#8217;0000BE&#8217;&gt;&#8221;+cstr(ipage)+&#8221;&lt;/font&gt;&lt;/a&gt;&amp;nbsp;&#8221;<br />
             else<br />
             response.write &#8220;&lt;font color=&#8217;#FF0000&#8242;&gt;&#8221;&amp;ipage&amp;&#8221;&lt;/font&gt; &#8220;                                               <br />
             end if<br />
    next<br />
    end if<br />
             %&gt;<br />
    &lt;/font&gt;&lt;/td&gt;&lt;form name=go2to form method=Post action=&lt;%=fy%&gt;&gt; <br />
    &lt;td width=&#8221;13%&#8221; align=&#8221;center&#8221; valign=&#8221;middle&#8221; class=&#8221;fy&#8221;&gt;                                         <br />
   &lt;input type=&#8217;hidden&#8217; name=&#8217;sortid&#8217; value=&#8221;&lt;%=sortid%&gt;&#8221;&gt;&lt;input type=&#8217;hidden&#8217; name=&#8217;typeid&#8217; value=&#8221;&lt;%=typeid%&gt;&#8221;&gt;&lt;input type=&#8217;hidden&#8217; name=&#8217;qylb&#8217; value=&#8221;&lt;%=qylb%&gt;&#8221;&gt;&lt;input type=&#8217;hidden&#8217; name=&#8217;title&#8217; value=&#8221;&lt;%title%&gt;&#8221;&gt;&lt;input type=&#8217;hidden&#8217; name=&#8217;cityid&#8217; value=&#8221;&lt;%=cityid%&gt;&#8221;&gt;&lt;font color=&#8217;000064&#8242;&gt; 转到第&lt;input type=&#8217;text&#8217; name=&#8217;page&#8217; size=2 maxLength=3&gt;<br />
   页&lt;/font&gt;                              <br />
   &lt;/td&gt;<br />
    &lt;td width=&#8221;10%&#8221; align=&#8221;center&#8221; valign=&#8221;middle&#8221; class=&#8221;fy&#8221;&gt;&lt;input name=&#8221;image&#8221; type=&#8217;image&#8217; onClick=check() value=&#8217;确 定&#8217; src=&#8217;http://edu.chinaz.com/Get/Program/images/button_h.jpg&#8217;&gt;&lt;/td&gt;<br />
    &lt;/form&gt;<br />
  &lt;tr&gt;<br />
    &lt;td height=&#8221;20&#8243; colspan=&#8221;6&#8243; valign=&#8221;bottom&#8221;&gt;&lt;font color=&#8221;#000000&#8243;&gt;&amp;nbsp; &lt;/font&gt;&lt;/td&gt;<br />
  &lt;/tr&gt;<br />
  &lt;% end if %&gt;<br />
  &lt;% end if %&gt;<br />
&lt;/table&gt;</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://blog.1xi.net/asp/mokuai-fenye/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>用ASP实现在服务器自动在线解压RAR文件</title>
		<link>http://blog.1xi.net/asp/asp-zaixian-jieya-rar-wenjian</link>
		<comments>http://blog.1xi.net/asp/asp-zaixian-jieya-rar-wenjian#comments</comments>
		<pubDate>Thu, 02 Apr 2009 01:58:03 +0000</pubDate>
		<dc:creator>FDS</dc:creator>
				<category><![CDATA[ASP]]></category>

		<guid isPermaLink="false">http://blog.1xi.net/asp/asp-zaixian-jieya-rar-wenjian</guid>
		<description><![CDATA[文件打包以后，在服务器自动在线解压RAR文件，这样可以大量的减少上传文件的时间。也很方便！这里分享一个用ASP实现在服务器自动在线解压RAR文件的方法。 &#60;% dim ylj,ywj,Mlpath,Shell,rarcomm,RetCode,cmd,comm,fso Mlpath=&#8221;E:\page\mian\&#8221;    &#8216;存放RAR.EXE和CMD.EXE的路径 ylj=Server.mappath(&#8220;mian&#8221;)&#38;&#8221;\&#8221;  &#8216;解压文件后所放的路径 ywj=Server.mappath(&#8220;mian\apathy.rar&#8221;)  &#8216;要解压的RAR文件 Set Shell = Server.CreateObject(&#8220;WScript.Shell&#8221;) rarcomm= &#8220;E:\page\mian\cmd.exe /c &#8220;&#38;Mlpath&#38;&#8221;rar.exe x -t -o+ -p- &#8221; cmd=rarcomm&#38;ywj&#38;&#8221; &#8220;&#38;ylj RetCode = Shell.Run(cmd,1, True) %&#62; 就是用Server.CreateObject(&#8220;WScript.Shell&#8221;)来执行CMD.EXE来运行RAR.EXE文件来解压RAR文件的。]]></description>
			<content:encoded><![CDATA[<p>文件打包以后，在服务器自动在线解压RAR文件，这样可以大量的减少上传文件的时间。也很方便！这里分享一个用ASP实现在服务器自动在线解压RAR文件的方法。</p>
<blockquote><p>&lt;%</p>
<p>dim ylj,ywj,Mlpath,Shell,rarcomm,RetCode,cmd,comm,fso</p>
<p>Mlpath=&#8221;E:\page\mian\&#8221;    &#8216;存放RAR.EXE和CMD.EXE的路径</p>
<p>ylj=Server.mappath(&#8220;mian&#8221;)&amp;&#8221;\&#8221;  &#8216;解压文件后所放的路径</p>
<p>ywj=Server.mappath(&#8220;mian\apathy.rar&#8221;)  &#8216;要解压的RAR文件</p>
<p>Set Shell = Server.CreateObject(&#8220;WScript.Shell&#8221;)</p>
<p>rarcomm= &#8220;E:\page\mian\cmd.exe /c &#8220;&amp;Mlpath&amp;&#8221;rar.exe x -t -o+ -p- &#8221;</p>
<p>cmd=rarcomm&amp;ywj&amp;&#8221; &#8220;&amp;ylj</p>
<p>RetCode = Shell.Run(cmd,1, True)</p>
<p>%&gt;</p></blockquote>
<p>就是用Server.CreateObject(&#8220;WScript.Shell&#8221;)来执行CMD.EXE来运行RAR.EXE文件来解压RAR文件的。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.1xi.net/asp/asp-zaixian-jieya-rar-wenjian/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>JS弹出菜单纵向/横向效果</title>
		<link>http://blog.1xi.net/javascript/js-caidan</link>
		<comments>http://blog.1xi.net/javascript/js-caidan#comments</comments>
		<pubDate>Tue, 24 Mar 2009 09:05:49 +0000</pubDate>
		<dc:creator>FDS</dc:creator>
				<category><![CDATA[HTML]]></category>
		<category><![CDATA[JAVASCRIPT]]></category>

		<guid isPermaLink="false">http://blog.1xi.net/javascript/js-caidan</guid>
		<description><![CDATA[JS弹出菜单效果，包括纵向和横向的。以下是实现方法。 &#60;!DOCTYPE html PUBLIC &#8220;-//W3C//DTD XHTML 1.0 Transitional//EN&#8221; &#8220;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&#8220;&#62; &#60;html xmlns=&#8221;http://www.w3.org/1999/xhtml&#8220;&#62; &#60;HEAD&#62; &#60;TITLE&#62;&#60;/TITLE&#62; &#60;/HEAD&#62; &#60;BODY background=&#8221;img/back.gif&#8221; leftMargin=0 topMargin=0&#62; &#60;script language=&#8221;JavaScript&#8221;&#62; &#60;!&#8211; function mmLoadMenus() {  if (window.mm_menu_1008171701_0) return;  window.mm_menu_1008171701_0 = new Menu(&#8220;root&#8221;,71,18,&#8221;",12,&#8221;#FFFFFF&#8221;,&#8221;#FFFFFF&#8221;,&#8221;#FF9900&#8243;,&#8221;#CC0000&#8243;,&#8221;center&#8221;,&#8221;middle&#8221;,3,0,400,-5,7,true,false,true,0,true,true);/* 后面三个TRUE如果是FALSE就是横向*/  mm_menu_1008171701_0.addMenuItem(&#8220;40头镀铝机&#8221;,&#8221;location=&#8217;111.asp&#8217;&#8221;);  mm_menu_1008171701_0.addMenuItem(&#8220;30头镀铝机&#8221;,&#8221;location=&#8217;222.asp&#8217;&#8221;);  mm_menu_1008171701_0.addMenuItem(&#8220;20头镀铝机&#8221;,&#8221;location=&#8217;333.asp&#8217;&#8221;);  mm_menu_1008171701_0.hideOnMouseOut=true;  mm_menu_1008171701_0.bgColor=&#8217;#555555&#8242;;  mm_menu_1008171701_0.menuBorder=6;  mm_menu_1008171701_0.menuLiteBgColor=&#8217;#FFFFFF&#8217;;  mm_menu_1008171701_0.menuBorderBgColor=&#8217;#777777&#8242;;  mm_menu_1008171701_0.writeMenus(); } // mmLoadMenus() //&#8211;&#62; &#60;/script&#62; &#60;script language=&#8221;JavaScript&#8221;&#62; /**  * mm_menu 20MAR2002 Version 6.0  * [...]]]></description>
			<content:encoded><![CDATA[<p>JS弹出菜单效果，包括纵向和横向的。以下是实现方法。</p>
<blockquote><p>&lt;!DOCTYPE html PUBLIC &#8220;-//W3C//DTD XHTML 1.0 Transitional//EN&#8221; &#8220;<a href="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd</a>&#8220;&gt;<br />
&lt;html xmlns=&#8221;<a href="http://www.w3.org/1999/xhtml">http://www.w3.org/1999/xhtml</a>&#8220;&gt;<br />
&lt;HEAD&gt;<br />
&lt;TITLE&gt;&lt;/TITLE&gt;<br />
&lt;/HEAD&gt;</p>
<p>&lt;BODY background=&#8221;img/back.gif&#8221; leftMargin=0 topMargin=0&gt;<br />
&lt;script language=&#8221;JavaScript&#8221;&gt;<br />
&lt;!&#8211;<br />
function mmLoadMenus() {<br />
 if (window.mm_menu_1008171701_0) return;<br />
 window.mm_menu_1008171701_0 = new Menu(&#8220;root&#8221;,71,18,&#8221;",12,&#8221;#FFFFFF&#8221;,&#8221;#FFFFFF&#8221;,&#8221;#FF9900&#8243;,&#8221;#CC0000&#8243;,&#8221;center&#8221;,&#8221;middle&#8221;,3,0,400,-5,7,true,false,true,0,true,true);/* 后面三个TRUE如果是FALSE就是横向*/<br />
 mm_menu_1008171701_0.addMenuItem(&#8220;40头镀铝机&#8221;,&#8221;location=&#8217;111.asp&#8217;&#8221;);<br />
 mm_menu_1008171701_0.addMenuItem(&#8220;30头镀铝机&#8221;,&#8221;location=&#8217;222.asp&#8217;&#8221;);<br />
 mm_menu_1008171701_0.addMenuItem(&#8220;20头镀铝机&#8221;,&#8221;location=&#8217;333.asp&#8217;&#8221;);<br />
 mm_menu_1008171701_0.hideOnMouseOut=true;<br />
 mm_menu_1008171701_0.bgColor=&#8217;#555555&#8242;;<br />
 mm_menu_1008171701_0.menuBorder=6;<br />
 mm_menu_1008171701_0.menuLiteBgColor=&#8217;#FFFFFF&#8217;;<br />
 mm_menu_1008171701_0.menuBorderBgColor=&#8217;#777777&#8242;;<br />
 mm_menu_1008171701_0.writeMenus();<br />
} // mmLoadMenus()<br />
//&#8211;&gt;<br />
&lt;/script&gt;<br />
&lt;script language=&#8221;JavaScript&#8221;&gt;<br />
/**<br />
 * mm_menu 20MAR2002 Version 6.0<br />
 * Andy Finnell, March 2002<br />
 * Copyright (c) 2000-2002 Macromedia, Inc.<br />
 *<br />
 * based on menu.js<br />
 * by gary smith, July 1997<br />
 * Copyright (c) 1997-1999 Netscape Communications Corp.<br />
 *<br />
 * Netscape grants you a royalty free license to use or modify this<br />
 * software provided that this copyright notice appears on all copies.<br />
 * This software is provided &#8220;AS IS,&#8221; without a warranty of any kind.<br />
 */<br />
function Menu(label, mw, mh, fnt, fs, fclr, fhclr, bg, bgh, halgn, valgn, pad, space, to, sx, sy, srel, opq, vert, idt, aw, ah)<br />
{<br />
 this.version = &#8220;020320 [Menu; mm_menu.js]&#8220;;<br />
 this.type = &#8220;Menu&#8221;;<br />
 this.menuWidth = mw;<br />
 this.menuItemHeight = mh;<br />
 this.fontSize = fs;<br />
 this.fontWeight = &#8220;plain&#8221;;<br />
 this.fontFamily = fnt;<br />
 this.fontColor = fclr;<br />
 this.fontColorHilite = fhclr;<br />
 this.bgColor = &#8220;#555555&#8243;;<br />
 this.menuBorder = 1;<br />
 this.menuBgOpaque=opq;<br />
 this.menuItemBorder = 1;<br />
 this.menuItemIndent = idt;<br />
 this.menuItemBgColor = bg;<br />
 this.menuItemVAlign = valgn;<br />
 this.menuItemHAlign = halgn;<br />
 this.menuItemPadding = pad;<br />
 this.menuItemSpacing = space;<br />
 this.menuLiteBgColor = &#8220;#ffffff&#8221;;<br />
 this.menuBorderBgColor = &#8220;#777777&#8243;;<br />
 this.menuHiliteBgColor = bgh;<br />
 this.menuContainerBgColor = &#8220;#cccccc&#8221;;<br />
 this.childMenuIcon = &#8220;arrows.gif&#8221;;<br />
 this.submenuXOffset = sx;<br />
 this.submenuYOffset = sy;<br />
 this.submenuRelativeToItem = srel;<br />
 this.vertical = vert;<br />
 this.items = new Array();<br />
 this.actions = new Array();<br />
 this.childMenus = new Array();<br />
 this.hideOnMouseOut = true;<br />
 this.hideTimeout = to;<br />
 this.addMenuItem = addMenuItem;<br />
 this.writeMenus = writeMenus;<br />
 this.MM_showMenu = MM_showMenu;<br />
 this.onMenuItemOver = onMenuItemOver;<br />
 this.onMenuItemAction = onMenuItemAction;<br />
 this.hideMenu = hideMenu;<br />
 this.hideChildMenu = hideChildMenu;<br />
 if (!window.menus) window.menus = new Array();<br />
 this.label = &#8221; &#8221; + label;<br />
 window.menus[this.label] = this;<br />
 window.menus[window.menus.length] = this;<br />
 if (!window.activeMenus) window.activeMenus = new Array();<br />
}</p>
<p>function addMenuItem(label, action) {<br />
 this.items[this.items.length] = label;<br />
 this.actions[this.actions.length] = action;<br />
}</p>
<p>function FIND(item) {<br />
 if( window.mmIsOpera ) return(document.getElementById(item));<br />
 if (document.all) return(document.all[item]);<br />
 if (document.getElementById) return(document.getElementById(item));<br />
 return(false);<br />
}</p>
<p>function writeMenus(container) {<br />
 if (window.triedToWriteMenus) return;<br />
 var agt = navigator.userAgent.toLowerCase();<br />
 window.mmIsOpera = agt.indexOf(&#8220;opera&#8221;) != -1;<br />
 if (!container &amp;&amp; document.layers) {<br />
  window.delayWriteMenus = this.writeMenus;<br />
  var timer = setTimeout(&#8216;delayWriteMenus()&#8217;, 500);<br />
  container = new Layer(100);<br />
  clearTimeout(timer);<br />
 } else if (document.all || document.hasChildNodes || window.mmIsOpera) {<br />
  document.writeln(&#8216;&lt;span id=&#8221;menuContainer&#8221;&gt;&lt;/span&gt;&#8217;);<br />
  container = FIND(&#8220;menuContainer&#8221;);<br />
 }</p>
<p> window.mmHideMenuTimer = null;<br />
 if (!container) return; <br />
 window.triedToWriteMenus = true;<br />
 container.isContainer = true;<br />
 container.menus = new Array();<br />
 for (var i=0; i&lt;window.menus.length; i++)<br />
  container.menus[i] = window.menus[i];<br />
 window.menus.length = 0;<br />
 var countMenus = 0;<br />
 var countItems = 0;<br />
 var top = 0;<br />
 var content = &#8221;;<br />
 var lrs = false;<br />
 var theStat = &#8220;&#8221;;<br />
 var tsc = 0;<br />
 if (document.layers) lrs = true;<br />
 for (var i=0; i&lt;container.menus.length; i++, countMenus++) {<br />
  var menu = container.menus[i];<br />
  if (menu.bgImageUp || !menu.menuBgOpaque) {<br />
   menu.menuBorder = 0;<br />
   menu.menuItemBorder = 0;<br />
  }<br />
  if (lrs) {<br />
   var menuLayer = new Layer(100, container);<br />
   var lite = new Layer(100, menuLayer);<br />
   lite.top = menu.menuBorder;<br />
   lite.left = menu.menuBorder;<br />
   var body = new Layer(100, lite);<br />
   body.top = menu.menuBorder;<br />
   body.left = menu.menuBorder;<br />
  } else {<br />
   content += &#8221;+<br />
   &#8217;&lt;div id=&#8221;menuLayer&#8217;+ countMenus +&#8217;&#8221; style=&#8221;filter:Alpha(Opacity=90);position:absolute;z-index:1;left:10px;top:&#8217;+ (i * 100) +&#8217;px;visibility:hidden;color:&#8217; +  menu.menuBorderBgColor + &#8216;;&#8221;&gt;\n&#8217;+<br />
   &#8217;  &lt;div id=&#8221;menuLite&#8217;+ countMenus +&#8217;&#8221; style=&#8221;position:absolute;z-index:1;left:&#8217;+ menu.menuBorder +&#8217;px;top:&#8217;+ menu.menuBorder +&#8217;px;visibility:hide;&#8221; onmouseout=&#8221;mouseoutMenu();&#8221;&gt;\n&#8217;+<br />
   &#8217;  &lt;div id=&#8221;menuFg&#8217;+ countMenus +&#8217;&#8221; style=&#8221;position:absolute;left:&#8217;+ menu.menuBorder +&#8217;px;top:&#8217;+ menu.menuBorder +&#8217;px;visibility:hide;&#8221;&gt;\n&#8217;+<br />
   &#8221;;<br />
  }<br />
  var x=i;<br />
  for (var i=0; i&lt;menu.items.length; i++) {<br />
   var item = menu.items[i];<br />
   var childMenu = false;<br />
   var defaultHeight = menu.fontSize+2*menu.menuItemPadding;<br />
   if (item.label) {<br />
    item = item.label;<br />
    childMenu = true;<br />
   }<br />
   menu.menuItemHeight = menu.menuItemHeight || defaultHeight;<br />
   var itemProps = &#8221;;<br />
   if( menu.fontFamily != &#8221; ) itemProps += &#8216;font-family:&#8217; + menu.fontFamily +&#8217;;';<br />
   itemProps += &#8216;font-weight:&#8217; + menu.fontWeight + &#8216;;fontSize:&#8217; + menu.fontSize + &#8216;px;&#8217;;<br />
   if (menu.fontStyle) itemProps += &#8216;font-style:&#8217; + menu.fontStyle + &#8216;;&#8217;;<br />
   if (document.all || window.mmIsOpera)<br />
    itemProps += &#8216;font-size:&#8217; + menu.fontSize + &#8216;px;&#8221; onmouseover=&#8221;onMenuItemOver(null,this);&#8221; onclick=&#8221;onMenuItemAction(null,this);&#8217;;<br />
   else if (!document.layers) {<br />
    itemProps += &#8216;font-size:&#8217; + menu.fontSize + &#8216;px;&#8217;;<br />
   }<br />
   var l;<br />
   if (lrs) {<br />
    var lw = menu.menuWidth;<br />
    if( menu.menuItemHAlign == &#8216;right&#8217; ) lw -= menu.menuItemPadding;<br />
    l = new Layer(lw,body);<br />
   }<br />
   var itemLeft = 0;<br />
   var itemTop = i*menu.menuItemHeight;<br />
   if( !menu.vertical ) {<br />
    itemLeft = i*menu.menuWidth;<br />
    itemTop = 0;<br />
   }<br />
   var dTag = &#8216;&lt;div id=&#8221;menuItem&#8217;+ countItems +&#8217;&#8221; style=&#8221;position:absolute;left:&#8217; + itemLeft + &#8216;px;top:&#8217;+ itemTop +&#8217;px;&#8217;+ itemProps +&#8217;&#8221;&gt;&#8217;;<br />
   var dClose = &#8216;&lt;/div&gt;&#8217;<br />
   if (menu.bgImageUp) dTag = &#8216;&lt;div id=&#8221;menuItem&#8217;+ countItems +&#8217;&#8221; style=&#8221;background:url(&#8216;+menu.bgImageUp+&#8217;);position:absolute;left:&#8217; + itemLeft + &#8216;px;top:&#8217;+ itemTop +&#8217;px;&#8217;+ itemProps +&#8217;&#8221;&gt;&#8217;;</p>
<p>   var left = 0, top = 0, right = 0, bottom = 0;<br />
   left = 1 + menu.menuItemPadding + menu.menuItemIndent;<br />
   right = left + menu.menuWidth &#8211; 2*menu.menuItemPadding &#8211; menu.menuItemIndent;<br />
   if( menu.menuItemVAlign == &#8216;top&#8217; ) top = menu.menuItemPadding;<br />
   if( menu.menuItemVAlign == &#8216;bottom&#8217; ) top = menu.menuItemHeight-menu.fontSize-1-menu.menuItemPadding;<br />
   if( menu.menuItemVAlign == &#8216;middle&#8217; ) top = ((menu.menuItemHeight/2)-(menu.fontSize/2)-1);<br />
   bottom = menu.menuItemHeight &#8211; 2*menu.menuItemPadding;<br />
   var textProps = &#8216;position:absolute;left:&#8217; + left + &#8216;px;top:&#8217; + top + &#8216;px;&#8217;;<br />
   if (lrs) {<br />
    textProps +=itemProps + &#8216;right:&#8217; + right + &#8216;;bottom:&#8217; + bottom + &#8216;;&#8217;;<br />
    dTag = &#8220;&#8221;;<br />
    dClose = &#8220;&#8221;;<br />
   }<br />
   <br />
   if(document.all &amp;&amp; !window.mmIsOpera) {<br />
    item = &#8216;&lt;div align=&#8221;&#8216; + menu.menuItemHAlign + &#8216;&#8221;&gt;&#8217; + item + &#8216;&lt;/div&gt;&#8217;;<br />
   } else if (lrs) {<br />
    item = &#8216;&lt;div style=&#8221;text-align:&#8217; + menu.menuItemHAlign + &#8216;;&#8221;&gt;&#8217; + item + &#8216;&lt;/div&gt;&#8217;;<br />
   } else {<br />
    var hitem = null;<br />
    if( menu.menuItemHAlign != &#8216;left&#8217; ) {<br />
     if(window.mmIsOpera) {<br />
      var operaWidth = menu.menuItemHAlign == &#8216;center&#8217; ? -(menu.menuWidth-2*menu.menuItemPadding) : (menu.menuWidth-6*menu.menuItemPadding);<br />
      hitem = &#8216;&lt;div id=&#8221;menuItemHilite&#8217; + countItems + &#8216;Shim&#8221; style=&#8221;position:absolute;top:1px;left:&#8217; + menu.menuItemPadding + &#8216;px;width:&#8217; + operaWidth + &#8216;px;text-align:&#8217;<br />
       + menu.menuItemHAlign + &#8216;;visibility:visible;&#8221;&gt;&#8217; + item + &#8216;&lt;/div&gt;&#8217;;<br />
      item = &#8216;&lt;div id=&#8221;menuItemText&#8217; + countItems + &#8216;Shim&#8221; style=&#8221;position:absolute;top:1px;left:&#8217; + menu.menuItemPadding + &#8216;px;width:&#8217; + operaWidth + &#8216;px;text-align:&#8217;<br />
       + menu.menuItemHAlign + &#8216;;visibility:visible;&#8221;&gt;&#8217; + item + &#8216;&lt;/div&gt;&#8217;;<br />
     } else {<br />
      hitem = &#8216;&lt;div id=&#8221;menuItemHilite&#8217; + countItems + &#8216;Shim&#8221; style=&#8221;position:absolute;top:1px;left:1px;right:-&#8217; + (left+menu.menuWidth-3*menu.menuItemPadding) + &#8216;px;text-align:&#8217;<br />
       + menu.menuItemHAlign + &#8216;;visibility:visible;&#8221;&gt;&#8217; + item + &#8216;&lt;/div&gt;&#8217;;<br />
      item = &#8216;&lt;div id=&#8221;menuItemText&#8217; + countItems + &#8216;Shim&#8221; style=&#8221;position:absolute;top:1px;left:1px;right:-&#8217; + (left+menu.menuWidth-3*menu.menuItemPadding) + &#8216;px;text-align:&#8217;<br />
       + menu.menuItemHAlign + &#8216;;visibility:visible;&#8221;&gt;&#8217; + item + &#8216;&lt;/div&gt;&#8217;;<br />
     }<br />
    } else hitem = null;<br />
   }<br />
   if(document.all &amp;&amp; !window.mmIsOpera) item = &#8216;&lt;div id=&#8221;menuItemShim&#8217; + countItems + &#8216;&#8221; style=&#8221;position:absolute;left:0px;top:0px;&#8221;&gt;&#8217; + item + &#8216;&lt;/div&gt;&#8217;;<br />
   var dText = &#8216;&lt;div id=&#8221;menuItemText&#8217;+ countItems +&#8217;&#8221; style=&#8221;&#8216; + textProps + &#8216;color:&#8217;+ menu.fontColor +&#8217;;&#8221;&gt;&#8217;+ item +&#8217;&amp;nbsp&lt;/div&gt;\n&#8217;<br />
      + &#8216;&lt;div id=&#8221;menuItemHilite&#8217;+ countItems +&#8217;&#8221; style=&#8221;&#8216; + textProps + &#8216;color:&#8217;+ menu.fontColorHilite +&#8217;;visibility:hidden;&#8221;&gt;&#8217;<br />
      + (hitem||item) +&#8217;&amp;nbsp&lt;/div&gt;&#8217;;<br />
   if (childMenu) content += ( dTag + dText + &#8216;&lt;div id=&#8221;childMenu&#8217;+ countItems +&#8217;&#8221; style=&#8221;position:absolute;left:0px;top:3px;&#8221;&gt;&lt;img src=&#8221;&#8216;+ menu.childMenuIcon +&#8217;&#8221;&gt;&lt;/div&gt;\n&#8217; + dClose);<br />
   else content += ( dTag + dText + dClose);<br />
   if (lrs) {<br />
    l.document.open(&#8220;text/html&#8221;);<br />
    l.document.writeln(content);<br />
    l.document.close(); <br />
    content = &#8221;;<br />
    theStat += &#8220;-&#8221;;<br />
    tsc++;<br />
    if (tsc &gt; 50) {<br />
     tsc = 0;<br />
     theStat = &#8220;&#8221;;<br />
    }<br />
    status = theStat;<br />
   }<br />
   countItems++; <br />
  }<br />
  if (lrs) {<br />
   var focusItem = new Layer(100, body);<br />
   focusItem.visiblity=&#8221;hidden&#8221;;<br />
   focusItem.document.open(&#8220;text/html&#8221;);<br />
   focusItem.document.writeln(&#8220;&amp;nbsp;&#8221;);<br />
   focusItem.document.close(); <br />
  } else {<br />
    content += &#8216;   &lt;div id=&#8221;focusItem&#8217;+ countMenus +&#8217;&#8221; style=&#8221;position:absolute;left:0px;top:0px;visibility:hide;&#8221; onclick=&#8221;onMenuItemAction(null,this);&#8221;&gt;&amp;nbsp;&lt;/div&gt;\n&#8217;;<br />
    content += &#8216;   &lt;/div&gt;\n  &lt;/div&gt;\n&lt;/div&gt;\n&#8217;;<br />
  }<br />
  i=x;<br />
 }<br />
 if (document.layers) {  <br />
  container.clip.width = window.innerWidth;<br />
  container.clip.height = window.innerHeight;<br />
  container.onmouseout = mouseoutMenu;<br />
  container.menuContainerBgColor = this.menuContainerBgColor;<br />
  for (var i=0; i&lt;container.document.layers.length; i++) {<br />
   proto = container.menus[i];<br />
   var menu = container.document.layers[i];<br />
   container.menus[i].menuLayer = menu;<br />
   container.menus[i].menuLayer.Menu = container.menus[i];<br />
   container.menus[i].menuLayer.Menu.container = container;<br />
   var body = menu.document.layers[0].document.layers[0];<br />
   body.clip.width = proto.menuWidth || body.clip.width;<br />
   body.clip.height = proto.menuHeight || body.clip.height;<br />
   for (var n=0; n&lt;body.document.layers.length-1; n++) {<br />
    var l = body.document.layers[n];<br />
    l.Menu = container.menus[i];<br />
    l.menuHiliteBgColor = proto.menuHiliteBgColor;<br />
    l.document.bgColor = proto.menuItemBgColor;<br />
    l.saveColor = proto.menuItemBgColor;<br />
    l.onmouseover = proto.onMenuItemOver;<br />
    l.onclick = proto.onMenuItemAction;<br />
    l.mmaction = container.menus[i].actions[n];<br />
    l.focusItem = body.document.layers[body.document.layers.length-1];<br />
    l.clip.width = proto.menuWidth || body.clip.width;<br />
    l.clip.height = proto.menuItemHeight || l.clip.height;<br />
    if (n&gt;0) {<br />
     if( l.Menu.vertical ) l.top = body.document.layers[n-1].top + body.document.layers[n-1].clip.height + proto.menuItemBorder + proto.menuItemSpacing;<br />
     else l.left = body.document.layers[n-1].left + body.document.layers[n-1].clip.width + proto.menuItemBorder + proto.menuItemSpacing;<br />
    }<br />
    l.hilite = l.document.layers[1];<br />
    if (proto.bgImageUp) l.background.src = proto.bgImageUp;<br />
    l.document.layers[1].isHilite = true;<br />
    if (l.document.layers.length &gt; 2) {<br />
     l.childMenu = container.menus[i].items[n].menuLayer;<br />
     l.document.layers[2].left = l.clip.width -13;<br />
     l.document.layers[2].top = (l.clip.height / 2) -4;<br />
     l.document.layers[2].clip.left += 3;<br />
     l.Menu.childMenus[l.Menu.childMenus.length] = l.childMenu;<br />
    }<br />
   }<br />
   if( proto.menuBgOpaque ) body.document.bgColor = proto.bgColor;<br />
   if( proto.vertical ) {<br />
    body.clip.width  = l.clip.width +proto.menuBorder;<br />
    body.clip.height = l.top + l.clip.height +proto.menuBorder;<br />
   } else {<br />
    body.clip.height  = l.clip.height +proto.menuBorder;<br />
    body.clip.width = l.left + l.clip.width  +proto.menuBorder;<br />
    if( body.clip.width &gt; window.innerWidth ) body.clip.width = window.innerWidth;<br />
   }<br />
   var focusItem = body.document.layers[n];<br />
   focusItem.clip.width = body.clip.width;<br />
   focusItem.Menu = l.Menu;<br />
   focusItem.top = -30;<br />
            focusItem.captureEvents(Event.MOUSEDOWN);<br />
            focusItem.onmousedown = onMenuItemDown;<br />
   if( proto.menuBgOpaque ) menu.document.bgColor = proto.menuBorderBgColor;<br />
   var lite = menu.document.layers[0];<br />
   if( proto.menuBgOpaque ) lite.document.bgColor = proto.menuLiteBgColor;<br />
   lite.clip.width = body.clip.width +1;<br />
   lite.clip.height = body.clip.height +1;<br />
   menu.clip.width = body.clip.width + (proto.menuBorder * 3) ;<br />
   menu.clip.height = body.clip.height + (proto.menuBorder * 3);<br />
  }<br />
 } else {<br />
  if ((!document.all) &amp;&amp; (container.hasChildNodes) &amp;&amp; !window.mmIsOpera) {<br />
   container.innerHTML=content;<br />
  } else {<br />
   container.document.open(&#8220;text/html&#8221;);<br />
   container.document.writeln(content);<br />
   container.document.close(); <br />
  }<br />
  if (!FIND(&#8220;menuLayer0&#8243;)) return;<br />
  var menuCount = 0;<br />
  for (var x=0; x&lt;container.menus.length; x++) {<br />
   var menuLayer = FIND(&#8220;menuLayer&#8221; + x);<br />
   container.menus[x].menuLayer = &#8220;menuLayer&#8221; + x;<br />
   menuLayer.Menu = container.menus[x];<br />
   menuLayer.Menu.container = &#8220;menuLayer&#8221; + x;<br />
   menuLayer.style.zindex = 1;<br />
      var s = menuLayer.style;<br />
   s.pixeltop = -300;<br />
   s.pixelleft = -300;<br />
   s.top = &#8216;-300px&#8217;;<br />
   s.left = &#8216;-300px&#8217;;</p>
<p>   var menu = container.menus[x];<br />
   menu.menuItemWidth = menu.menuWidth || menu.menuIEWidth || 140;<br />
   if( menu.menuBgOpaque ) menuLayer.style.backgroundColor = menu.menuBorderBgColor;<br />
   var top = 0;<br />
   var left = 0;<br />
   menu.menuItemLayers = new Array();<br />
   for (var i=0; i&lt;container.menus[x].items.length; i++) {<br />
    var l = FIND(&#8220;menuItem&#8221; + menuCount);<br />
    l.Menu = container.menus[x];<br />
    l.Menu.menuItemLayers[l.Menu.menuItemLayers.length] = l;<br />
    if (l.addEventListener || window.mmIsOpera) {<br />
     l.style.width = menu.menuItemWidth + &#8216;px&#8217;;<br />
     l.style.height = menu.menuItemHeight + &#8216;px&#8217;;<br />
     l.style.pixelWidth = menu.menuItemWidth;<br />
     l.style.pixelHeight = menu.menuItemHeight;<br />
     l.style.top = top + &#8216;px&#8217;;<br />
     l.style.left = left + &#8216;px&#8217;;<br />
     if(l.addEventListener) {<br />
      l.addEventListener(&#8220;mouseover&#8221;, onMenuItemOver, false);<br />
      l.addEventListener(&#8220;click&#8221;, onMenuItemAction, false);<br />
      l.addEventListener(&#8220;mouseout&#8221;, mouseoutMenu, false);<br />
     }<br />
     if( menu.menuItemHAlign != &#8216;left&#8217; ) {<br />
      l.hiliteShim = FIND(&#8220;menuItemHilite&#8221; + menuCount + &#8220;Shim&#8221;);<br />
      l.hiliteShim.style.visibility = &#8220;inherit&#8221;;<br />
      l.textShim = FIND(&#8220;menuItemText&#8221; + menuCount + &#8220;Shim&#8221;);<br />
      l.hiliteShim.style.pixelWidth = menu.menuItemWidth &#8211; 2*menu.menuItemPadding &#8211; menu.menuItemIndent;<br />
      l.hiliteShim.style.width = l.hiliteShim.style.pixelWidth;<br />
      l.textShim.style.pixelWidth = menu.menuItemWidth &#8211; 2*menu.menuItemPadding &#8211; menu.menuItemIndent;<br />
      l.textShim.style.width = l.textShim.style.pixelWidth; <br />
     }<br />
    } else {<br />
     l.style.pixelWidth = menu.menuItemWidth;<br />
     l.style.pixelHeight = menu.menuItemHeight;<br />
     l.style.pixelTop = top;<br />
     l.style.pixelLeft = left;<br />
     if( menu.menuItemHAlign != &#8216;left&#8217; ) {<br />
      var shim = FIND(&#8220;menuItemShim&#8221; + menuCount);<br />
      shim[0].style.pixelWidth = menu.menuItemWidth &#8211; 2*menu.menuItemPadding &#8211; menu.menuItemIndent;<br />
      shim[1].style.pixelWidth = menu.menuItemWidth &#8211; 2*menu.menuItemPadding &#8211; menu.menuItemIndent;<br />
      shim[0].style.width = shim[0].style.pixelWidth + &#8216;px&#8217;;<br />
      shim[1].style.width = shim[1].style.pixelWidth + &#8216;px&#8217;;<br />
     }<br />
    }<br />
    if( menu.vertical ) top = top + menu.menuItemHeight+menu.menuItemBorder+menu.menuItemSpacing;<br />
    else left = left + menu.menuItemWidth+menu.menuItemBorder+menu.menuItemSpacing;<br />
    l.style.fontSize = menu.fontSize + &#8216;px&#8217;;<br />
    l.style.backgroundColor = menu.menuItemBgColor;<br />
    l.style.visibility = &#8220;inherit&#8221;;<br />
    l.saveColor = menu.menuItemBgColor;<br />
    l.menuHiliteBgColor = menu.menuHiliteBgColor;<br />
    l.mmaction = container.menus[x].actions[i];<br />
    l.hilite = FIND(&#8220;menuItemHilite&#8221; + menuCount);<br />
    l.focusItem = FIND(&#8220;focusItem&#8221; + x);<br />
    l.focusItem.style.pixelTop = -30;<br />
    l.focusItem.style.top = &#8216;-30px&#8217;;<br />
    var childItem = FIND(&#8220;childMenu&#8221; + menuCount);<br />
    if (childItem) {<br />
     l.childMenu = container.menus[x].items[i].menuLayer;<br />
     childItem.style.pixelLeft = menu.menuItemWidth -11;<br />
     childItem.style.left = childItem.style.pixelLeft + &#8216;px&#8217;;<br />
     childItem.style.pixelTop = (menu.menuItemHeight /2) -4;<br />
     childItem.style.top = childItem.style.pixelTop + &#8216;px&#8217;;<br />
     l.Menu.childMenus[l.Menu.childMenus.length] = l.childMenu;<br />
    }<br />
    l.style.cursor = &#8220;hand&#8221;;<br />
    menuCount++;<br />
   }<br />
   if( menu.vertical ) {<br />
    menu.menuHeight = top-1-menu.menuItemSpacing;<br />
    menu.menuWidth = menu.menuItemWidth;<br />
   } else {<br />
    menu.menuHeight = menu.menuItemHeight;<br />
    menu.menuWidth = left-1-menu.menuItemSpacing;<br />
   }</p>
<p>   var lite = FIND(&#8220;menuLite&#8221; + x);<br />
   var s = lite.style;<br />
   s.pixelHeight = menu.menuHeight +(menu.menuBorder * 2);<br />
   s.height = s.pixelHeight + &#8216;px&#8217;;<br />
   s.pixelWidth = menu.menuWidth + (menu.menuBorder * 2);<br />
   s.width = s.pixelWidth + &#8216;px&#8217;;<br />
   if( menu.menuBgOpaque ) s.backgroundColor = menu.menuLiteBgColor;</p>
<p>   var body = FIND(&#8220;menuFg&#8221; + x);<br />
   s = body.style;<br />
   s.pixelHeight = menu.menuHeight + menu.menuBorder;<br />
   s.height = s.pixelHeight + &#8216;px&#8217;;<br />
   s.pixelWidth = menu.menuWidth + menu.menuBorder;<br />
   s.width = s.pixelWidth + &#8216;px&#8217;;<br />
   if( menu.menuBgOpaque ) s.backgroundColor = menu.bgColor;</p>
<p>   s = menuLayer.style;<br />
   s.pixelWidth  = menu.menuWidth + (menu.menuBorder * 4);<br />
   s.width = s.pixelWidth + &#8216;px&#8217;;<br />
   s.pixelHeight  = menu.menuHeight+(menu.menuBorder*4);<br />
   s.height = s.pixelHeight + &#8216;px&#8217;;<br />
  }<br />
 }<br />
 if (document.captureEvents) document.captureEvents(Event.MOUSEUP);<br />
 if (document.addEventListener) document.addEventListener(&#8220;mouseup&#8221;, onMenuItemOver, false);<br />
 if (document.layers &amp;&amp; window.innerWidth) {<br />
  window.onresize = NS4resize;<br />
  window.NS4sIW = window.innerWidth;<br />
  window.NS4sIH = window.innerHeight;<br />
  setTimeout(&#8220;NS4resize()&#8221;,500);<br />
 }<br />
 document.onmouseup = mouseupMenu;<br />
 window.mmWroteMenu = true;<br />
 status = &#8220;&#8221;;<br />
}</p>
<p>function NS4resize() {<br />
 if (NS4sIW != window.innerWidth || NS4sIH != window.innerHeight) window.location.reload();<br />
}</p>
<p>function onMenuItemOver(e, l) {<br />
 MM_clearTimeout();<br />
 l = l || this;<br />
 a = window.ActiveMenuItem;<br />
 if (document.layers) {<br />
  if (a) {<br />
   a.document.bgColor = a.saveColor;<br />
   if (a.hilite) a.hilite.visibility = &#8220;hidden&#8221;;<br />
   if (a.Menu.bgImageOver) a.background.src = a.Menu.bgImageUp;<br />
   a.focusItem.top = -100;<br />
   a.clicked = false;<br />
  }<br />
  if (l.hilite) {<br />
   l.document.bgColor = l.menuHiliteBgColor;<br />
   l.zIndex = 1;<br />
   l.hilite.visibility = &#8220;inherit&#8221;;<br />
   l.hilite.zIndex = 2;<br />
   l.document.layers[1].zIndex = 1;<br />
   l.focusItem.zIndex = this.zIndex +2;<br />
  }<br />
  if (l.Menu.bgImageOver) l.background.src = l.Menu.bgImageOver;<br />
  l.focusItem.top = this.top;<br />
  l.focusItem.left = this.left;<br />
  l.focusItem.clip.width = l.clip.width;<br />
  l.focusItem.clip.height = l.clip.height;<br />
  l.Menu.hideChildMenu(l);<br />
 } else if (l.style &amp;&amp; l.Menu) {<br />
  if (a) {<br />
   a.style.backgroundColor = a.saveColor;<br />
   if (a.hilite) a.hilite.style.visibility = &#8220;hidden&#8221;;<br />
   if (a.hiliteShim) a.hiliteShim.style.visibility = &#8220;inherit&#8221;;<br />
   if (a.Menu.bgImageUp) a.style.background = &#8220;url(&#8221; + a.Menu.bgImageUp +&#8221;)&#8221;;;<br />
  }<br />
  l.style.backgroundColor = l.menuHiliteBgColor;<br />
  l.zIndex = 1;<br />
  if (l.Menu.bgImageOver) l.style.background = &#8220;url(&#8221; + l.Menu.bgImageOver +&#8221;)&#8221;;<br />
  if (l.hilite) {<br />
   l.hilite.style.visibility = &#8220;inherit&#8221;;<br />
   if( l.hiliteShim ) l.hiliteShim.style.visibility = &#8220;visible&#8221;;<br />
  }<br />
  l.focusItem.style.pixelTop = l.style.pixelTop;<br />
  l.focusItem.style.top = l.focusItem.style.pixelTop + &#8216;px&#8217;;<br />
  l.focusItem.style.pixelLeft = l.style.pixelLeft;<br />
  l.focusItem.style.left = l.focusItem.style.pixelLeft + &#8216;px&#8217;;<br />
  l.focusItem.style.zIndex = l.zIndex +1;<br />
  l.Menu.hideChildMenu(l);<br />
 } else return;<br />
 window.ActiveMenuItem = l;<br />
}</p>
<p>function onMenuItemAction(e, l) {<br />
 l = window.ActiveMenuItem;<br />
 if (!l) return;<br />
 hideActiveMenus();<br />
 if (l.mmaction) eval(&#8220;&#8221; + l.mmaction);<br />
 window.ActiveMenuItem = 0;<br />
}</p>
<p>function MM_clearTimeout() {<br />
 if (mmHideMenuTimer) clearTimeout(mmHideMenuTimer);<br />
 mmHideMenuTimer = null;<br />
 mmDHFlag = false;<br />
}</p>
<p>function MM_startTimeout() {<br />
 if( window.ActiveMenu ) {<br />
  mmStart = new Date();<br />
  mmDHFlag = true;<br />
  mmHideMenuTimer = setTimeout(&#8220;mmDoHide()&#8221;, window.ActiveMenu.Menu.hideTimeout);<br />
 }<br />
}</p>
<p>function mmDoHide() {<br />
 if (!mmDHFlag || !window.ActiveMenu) return;<br />
 var elapsed = new Date() &#8211; mmStart;<br />
 var timeout = window.ActiveMenu.Menu.hideTimeout;<br />
 if (elapsed &lt; timeout) {<br />
  mmHideMenuTimer = setTimeout(&#8220;mmDoHide()&#8221;, timeout+100-elapsed);<br />
  return;<br />
 }<br />
 mmDHFlag = false;<br />
 hideActiveMenus();<br />
 window.ActiveMenuItem = 0;<br />
}</p>
<p>function MM_showMenu(menu, x, y, child, imgname) {<br />
 if (!window.mmWroteMenu) return;<br />
 MM_clearTimeout();<br />
 if (menu) {<br />
  var obj = FIND(imgname) || document.images[imgname] || document.links[imgname] || document.anchors[imgname];<br />
  x = moveXbySlicePos (x, obj);<br />
  y = moveYbySlicePos (y, obj);<br />
 }<br />
 if (document.layers) {<br />
  if (menu) {<br />
   var l = menu.menuLayer || menu;<br />
   l.top = l.left = 1;<br />
   hideActiveMenus();<br />
   if (this.visibility) l = this;<br />
   window.ActiveMenu = l;<br />
  } else {<br />
   var l = child;<br />
  }<br />
  if (!l) return;<br />
  for (var i=0; i&lt;l.layers.length; i++) {      <br />
   if (!l.layers[i].isHilite) l.layers[i].visibility = &#8220;inherit&#8221;;<br />
   if (l.layers[i].document.layers.length &gt; 0) MM_showMenu(null, &#8220;relative&#8221;, &#8220;relative&#8221;, l.layers[i]);<br />
  }<br />
  if (l.parentLayer) {<br />
   if (x != &#8220;relative&#8221;) l.parentLayer.left = x || window.pageX || 0;<br />
   if (l.parentLayer.left + l.clip.width &gt; window.innerWidth) l.parentLayer.left -= (l.parentLayer.left + l.clip.width &#8211; window.innerWidth);<br />
   if (y != &#8220;relative&#8221;) l.parentLayer.top = y || window.pageY || 0;<br />
   if (l.parentLayer.isContainer) {<br />
    l.Menu.xOffset = window.pageXOffset;<br />
    l.Menu.yOffset = window.pageYOffset;<br />
    l.parentLayer.clip.width = window.ActiveMenu.clip.width +2;<br />
    l.parentLayer.clip.height = window.ActiveMenu.clip.height +2;<br />
    if (l.parentLayer.menuContainerBgColor &amp;&amp; l.Menu.menuBgOpaque ) l.parentLayer.document.bgColor = l.parentLayer.menuContainerBgColor;<br />
   }<br />
  }<br />
  l.visibility = &#8220;inherit&#8221;;<br />
  if (l.Menu) l.Menu.container.visibility = &#8220;inherit&#8221;;<br />
 } else if (FIND(&#8220;menuItem0&#8243;)) {<br />
  var l = menu.menuLayer || menu; <br />
  hideActiveMenus();<br />
  if (typeof(l) == &#8220;string&#8221;) l = FIND(l);<br />
  window.ActiveMenu = l;<br />
  var s = l.style;<br />
  s.visibility = &#8220;inherit&#8221;;<br />
  if (x != &#8220;relative&#8221;) {<br />
   s.pixelLeft = x || (window.pageX + document.body.scrollLeft) || 0;<br />
   s.left = s.pixelLeft + &#8216;px&#8217;;<br />
  }<br />
  if (y != &#8220;relative&#8221;) {<br />
   s.pixelTop = y || (window.pageY + document.body.scrollTop) || 0;<br />
   s.top = s.pixelTop + &#8216;px&#8217;;<br />
  }<br />
  l.Menu.xOffset = document.body.scrollLeft;<br />
  l.Menu.yOffset = document.body.scrollTop;<br />
 }<br />
 if (menu) window.activeMenus[window.activeMenus.length] = l;<br />
 MM_clearTimeout();<br />
}</p>
<p>function onMenuItemDown(e, l) {<br />
 var a = window.ActiveMenuItem;<br />
 if (document.layers &amp;&amp; a) {<br />
  a.eX = e.pageX;<br />
  a.eY = e.pageY;<br />
  a.clicked = true;<br />
    }<br />
}</p>
<p>function mouseupMenu(e) {<br />
 hideMenu(true, e);<br />
 hideActiveMenus();<br />
 return true;<br />
}<br />
function getExplorerVersion() {<br />
 var ieVers = parseFloat(navigator.appVersion);<br />
 if( navigator.appName != &#8216;Microsoft Internet Explorer&#8217; ) return ieVers;<br />
 var tempVers = navigator.appVersion;<br />
 var i = tempVers.indexOf( &#8216;MSIE &#8216; );<br />
 if( i &gt;= 0 ) {<br />
  tempVers = tempVers.substring( i+5 );<br />
  ieVers = parseFloat( tempVers );<br />
 }<br />
 return ieVers;<br />
}</p>
<p>function mouseoutMenu() {<br />
 if ((navigator.appName == &#8220;Microsoft Internet Explorer&#8221;) &amp;&amp; (getExplorerVersion() &lt; 4.5))<br />
  return true;<br />
 hideMenu(false, false);<br />
 return true;<br />
}</p>
<p>function hideMenu(mouseup, e) {<br />
 var a = window.ActiveMenuItem;<br />
 if (a &amp;&amp; document.layers) {<br />
  a.document.bgColor = a.saveColor;<br />
  a.focusItem.top = -30;<br />
  if (a.hilite) a.hilite.visibility = &#8220;hidden&#8221;;<br />
  if (mouseup &amp;&amp; a.mmaction &amp;&amp; a.clicked &amp;&amp; window.ActiveMenu) {<br />
    if (a.eX &lt;= e.pageX+15 &amp;&amp; a.eX &gt;= e.pageX-15 &amp;&amp; a.eY &lt;= e.pageY+10 &amp;&amp; a.eY &gt;= e.pageY-10) {<br />
    setTimeout(&#8216;window.ActiveMenu.Menu.onMenuItemAction();&#8217;, 500);<br />
   }<br />
  }<br />
  a.clicked = false;<br />
  if (a.Menu.bgImageOver) a.background.src = a.Menu.bgImageUp;<br />
 } else if (window.ActiveMenu &amp;&amp; FIND(&#8220;menuItem0&#8243;)) {<br />
  if (a) {<br />
   a.style.backgroundColor = a.saveColor;<br />
   if (a.hilite) a.hilite.style.visibility = &#8220;hidden&#8221;;<br />
   if (a.hiliteShim) a.hiliteShim.style.visibility = &#8220;inherit&#8221;;<br />
   if (a.Menu.bgImageUp) a.style.background = &#8220;url(&#8221; + a.Menu.bgImageUp +&#8221;)&#8221;;<br />
  }<br />
 }<br />
 if (!mouseup &amp;&amp; window.ActiveMenu) {<br />
  if (window.ActiveMenu.Menu) {<br />
   if (window.ActiveMenu.Menu.hideOnMouseOut) MM_startTimeout();<br />
   return(true);<br />
  }<br />
 }<br />
 return(true);<br />
}</p>
<p>function hideChildMenu(hcmLayer) {<br />
 MM_clearTimeout();<br />
 var l = hcmLayer;<br />
 for (var i=0; i &lt; l.Menu.childMenus.length; i++) {<br />
  var theLayer = l.Menu.childMenus[i];<br />
  if (document.layers) theLayer.visibility = &#8220;hidden&#8221;;<br />
  else {<br />
   theLayer = FIND(theLayer);<br />
   theLayer.style.visibility = &#8220;hidden&#8221;;<br />
   if( theLayer.Menu.menuItemHAlign != &#8216;left&#8217; ) {<br />
    for(var j = 0; j &lt; theLayer.Menu.menuItemLayers.length; j++) {<br />
     var itemLayer = theLayer.Menu.menuItemLayers[j];<br />
     if(itemLayer.textShim) itemLayer.textShim.style.visibility = &#8220;inherit&#8221;;<br />
    }<br />
   }<br />
  }<br />
  theLayer.Menu.hideChildMenu(theLayer);<br />
 }<br />
 if (l.childMenu) {<br />
  var childMenu = l.childMenu;<br />
  if (document.layers) {<br />
   l.Menu.MM_showMenu(null,null,null,childMenu.layers[0]);<br />
   childMenu.zIndex = l.parentLayer.zIndex +1;<br />
   childMenu.top = l.Menu.menuLayer.top + l.Menu.submenuYOffset;<br />
   if( l.Menu.vertical ) {<br />
    if( l.Menu.submenuRelativeToItem ) childMenu.top += l.top + l.parentLayer.top;<br />
    childMenu.left = l.parentLayer.left + l.parentLayer.clip.width &#8211; (2*l.Menu.menuBorder) + l.Menu.menuLayer.left + l.Menu.submenuXOffset;<br />
   } else {<br />
    childMenu.top += l.top + l.parentLayer.top; <br />
    if( l.Menu.submenuRelativeToItem ) childMenu.left = l.Menu.menuLayer.left + l.left + l.clip.width + (2*l.Menu.menuBorder) + l.Menu.submenuXOffset;<br />
    else childMenu.left = l.parentLayer.left + l.parentLayer.clip.width &#8211; (2*l.Menu.menuBorder) + l.Menu.menuLayer.left + l.Menu.submenuXOffset;<br />
   }<br />
   if( childMenu.left &lt; l.Menu.container.clip.left ) l.Menu.container.clip.left = childMenu.left;<br />
   var w = childMenu.clip.width+childMenu.left-l.Menu.container.clip.left;<br />
   if (w &gt; l.Menu.container.clip.width)  l.Menu.container.clip.width = w;<br />
   var h = childMenu.clip.height+childMenu.top-l.Menu.container.clip.top;<br />
   if (h &gt; l.Menu.container.clip.height) l.Menu.container.clip.height = h;<br />
   l.document.layers[1].zIndex = 0;<br />
   childMenu.visibility = &#8220;inherit&#8221;;<br />
  } else if (FIND(&#8220;menuItem0&#8243;)) {<br />
   childMenu = FIND(l.childMenu);<br />
   var menuLayer = FIND(l.Menu.menuLayer);<br />
   var s = childMenu.style;<br />
   s.zIndex = menuLayer.style.zIndex+1;<br />
   if (document.all || window.mmIsOpera) {<br />
    s.pixelTop = menuLayer.style.pixelTop + l.Menu.submenuYOffset;<br />
    if( l.Menu.vertical ) {<br />
     if( l.Menu.submenuRelativeToItem ) s.pixelTop += l.style.pixelTop;<br />
     s.pixelLeft = l.style.pixelWidth + menuLayer.style.pixelLeft + l.Menu.submenuXOffset;<br />
     s.left = s.pixelLeft + &#8216;px&#8217;;<br />
    } else {<br />
     s.pixelTop += l.style.pixelTop;<br />
     if( l.Menu.submenuRelativeToItem ) s.pixelLeft = menuLayer.style.pixelLeft + l.style.pixelLeft + l.style.pixelWidth + (2*l.Menu.menuBorder) + l.Menu.submenuXOffset;<br />
     else s.pixelLeft = (menuLayer.style.pixelWidth-4*l.Menu.menuBorder) + menuLayer.style.pixelLeft + l.Menu.submenuXOffset;<br />
     s.left = s.pixelLeft + &#8216;px&#8217;;<br />
    }<br />
   } else {<br />
    var top = parseInt(menuLayer.style.top) + l.Menu.submenuYOffset;<br />
    var left = 0;<br />
    if( l.Menu.vertical ) {<br />
     if( l.Menu.submenuRelativeToItem ) top += parseInt(l.style.top);<br />
     left = (parseInt(menuLayer.style.width)-4*l.Menu.menuBorder) + parseInt(menuLayer.style.left) + l.Menu.submenuXOffset;<br />
    } else {<br />
     top += parseInt(l.style.top);<br />
     if( l.Menu.submenuRelativeToItem ) left = parseInt(menuLayer.style.left) + parseInt(l.style.left) + parseInt(l.style.width) + (2*l.Menu.menuBorder) + l.Menu.submenuXOffset;<br />
     else left = (parseInt(menuLayer.style.width)-4*l.Menu.menuBorder) + parseInt(menuLayer.style.left) + l.Menu.submenuXOffset;<br />
    }<br />
    s.top = top + &#8216;px&#8217;;<br />
    s.left = left + &#8216;px&#8217;;<br />
   }<br />
   childMenu.style.visibility = &#8220;inherit&#8221;;<br />
  } else return;<br />
  window.activeMenus[window.activeMenus.length] = childMenu;<br />
 }<br />
}</p>
<p>function hideActiveMenus() {<br />
 if (!window.activeMenus) return;<br />
 for (var i=0; i &lt; window.activeMenus.length; i++) {<br />
  if (!activeMenus[i]) continue;<br />
  if (activeMenus[i].visibility &amp;&amp; activeMenus[i].Menu &amp;&amp; !window.mmIsOpera) {<br />
   activeMenus[i].visibility = &#8220;hidden&#8221;;<br />
   activeMenus[i].Menu.container.visibility = &#8220;hidden&#8221;;<br />
   activeMenus[i].Menu.container.clip.left = 0;<br />
  } else if (activeMenus[i].style) {<br />
   var s = activeMenus[i].style;<br />
   s.visibility = &#8220;hidden&#8221;;<br />
   s.left = &#8216;-200px&#8217;;<br />
   s.top = &#8216;-200px&#8217;;<br />
  }<br />
 }<br />
 if (window.ActiveMenuItem) hideMenu(false, false);<br />
 window.activeMenus.length = 0;<br />
}</p>
<p>function moveXbySlicePos (x, img) {<br />
 if (!document.layers) {<br />
  var onWindows = navigator.platform ? navigator.platform == &#8220;Win32&#8243; : false;<br />
  var macIE45 = document.all &amp;&amp; !onWindows &amp;&amp; getExplorerVersion() == 4.5;<br />
  var par = img;<br />
  var lastOffset = 0;<br />
  while(par){<br />
   if( par.leftMargin &amp;&amp; ! onWindows ) x += parseInt(par.leftMargin);<br />
   if( (par.offsetLeft != lastOffset) &amp;&amp; par.offsetLeft ) x += parseInt(par.offsetLeft);<br />
   if( par.offsetLeft != 0 ) lastOffset = par.offsetLeft;<br />
   par = macIE45 ? par.parentElement : par.offsetParent;<br />
  }<br />
 } else if (img.x) x += img.x;<br />
 return x;<br />
}</p>
<p>function moveYbySlicePos (y, img) {<br />
 if(!document.layers) {<br />
  var onWindows = navigator.platform ? navigator.platform == &#8220;Win32&#8243; : false;<br />
  var macIE45 = document.all &amp;&amp; !onWindows &amp;&amp; getExplorerVersion() == 4.5;<br />
  var par = img;<br />
  var lastOffset = 0;<br />
  while(par){<br />
   if( par.topMargin &amp;&amp; !onWindows ) y += parseInt(par.topMargin);<br />
   if( (par.offsetTop != lastOffset) &amp;&amp; par.offsetTop ) y += parseInt(par.offsetTop);<br />
   if( par.offsetTop != 0 ) lastOffset = par.offsetTop;<br />
   par = macIE45 ? par.parentElement : par.offsetParent;<br />
  }  <br />
 } else if (img.y &gt;= 0) y += img.y;<br />
 return y;<br />
}<br />
&lt;/script&gt;<br />
&lt;script language=&#8221;JavaScript1.2&#8243;&gt;mmLoadMenus();&lt;/script&gt;<br />
&lt;table width=&#8221;60%&#8221; border=&#8221;0&#8243; align=&#8221;center&#8221; cellspacing=&#8221;0&#8243;&gt;<br />
&lt;tr class=&#8221;top&#8221;&gt;<br />
  &lt;td&gt; &lt;div align=&#8221;center&#8221;&gt;&lt;font color=&#8221;#000000&#8243;&gt;<br />
&lt;a href=&#8221;#&#8221; name=&#8221;link2&#8243; id=&#8221;link1&#8243; onMouseOver=&#8221;MM_showMenu(window.mm_menu_1008171701_0,10,18,null,&#8217;link2&#8242;)&#8221; onMouseOut=&#8221;MM_startTimeout();&#8221;&gt;<br />
真空镀铝机&lt;/a&gt;<br />
      &lt;/font&gt;&lt;/div&gt;&lt;/td&gt;<br />
&lt;/tr&gt;<br />
&lt;/table&gt;<br />
&lt;/BODY&gt;<br />
&lt;/html&gt;</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://blog.1xi.net/javascript/js-caidan/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>用ASP实现简单的防盗链</title>
		<link>http://blog.1xi.net/asp/fangdaolian</link>
		<comments>http://blog.1xi.net/asp/fangdaolian#comments</comments>
		<pubDate>Thu, 05 Mar 2009 02:22:47 +0000</pubDate>
		<dc:creator>FDS</dc:creator>
				<category><![CDATA[ASP]]></category>

		<guid isPermaLink="false">http://blog.1xi.net/asp/fangdaolian</guid>
		<description><![CDATA[是不是老有人盗用你的资源，自己辛苦搞的东西就被被人白白的盗用了。给你支个简单的防盗链方法，也许非常有用哦。主要实现方式是：判断来源地址是不是你的地址，如果是的话，给下载，如果不是，给出禁止提示！以下是简单代码部分，参考下吧。 &#60;% http=Request.ServerVariables(&#8220;HTTP_REFERER&#8221;) http2=Cstr(Request.ServerVariables(&#8220;SERVER_NAME&#8221;)) if mid(http,8,len(http2))&#60;&#62;http2 then response.write &#8220;本站禁止从外部站点下载！&#8221; else response.redirect &#8220;download.doc&#8221; &#8216;download.doc为下载文件名 end if %&#62;]]></description>
			<content:encoded><![CDATA[<p><span id="ArticleContent1_ArticleContent1_lblContent">是不是老有人盗用你的资源，自己辛苦搞的东西就被被人白白的盗用了。给你支个简单的防盗链方法，也许非常有用哦。主要实现方式是：判断来源地址是不是你的地址，如果是的话，给下载，如果不是，给出禁止提示！以下是简单代码部分，参考下吧。</p>
<blockquote><p>
&lt;%<br />
http=Request.ServerVariables(&#8220;HTTP_REFERER&#8221;)<br />
http2=Cstr(Request.ServerVariables(&#8220;SERVER_NAME&#8221;))<br />
if mid(http,8,len(http2))&lt;&gt;http2 then<br />
response.write &#8220;本站禁止从外部站点下载！&#8221;<br />
else<br />
response.redirect &#8220;download.doc&#8221; &#8216;download.doc为下载文件名<br />
end if<br />
%&gt;</p></blockquote>
<p></span></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.1xi.net/asp/fangdaolian/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>用ASP把汉字转换成拼音的函数</title>
		<link>http://blog.1xi.net/asp/hanzi-to-pinyin</link>
		<comments>http://blog.1xi.net/asp/hanzi-to-pinyin#comments</comments>
		<pubDate>Thu, 05 Mar 2009 02:06:17 +0000</pubDate>
		<dc:creator>FDS</dc:creator>
				<category><![CDATA[ASP]]></category>
		<category><![CDATA[函数]]></category>
		<category><![CDATA[拼音]]></category>

		<guid isPermaLink="false">http://blog.1xi.net/asp/hanzi-to-pinyin</guid>
		<description><![CDATA[中国人都习惯于用拼音，常常把在SEO的时候，把URL的行字转化成拼音，有利于搜索引擎的识别，获的好的排名。这里分享一个用ASP把汉字转换成拼音的函数。希望各位看客喜欢！ &#60;% Set d = CreateObject(&#8220;Scripting.Dictionary&#8221;) d.add &#8221;a&#8221;,-20319 d.add &#8221;ai&#8221;,-20317 d.add &#8221;an&#8221;,-20304 d.add &#8221;ang&#8221;,-20295 d.add &#8221;ao&#8221;,-20292 d.add &#8221;ba&#8221;,-20283 d.add &#8221;bai&#8221;,-20265 d.add &#8221;ban&#8221;,-20257 d.add &#8221;bang&#8221;,-20242 d.add &#8221;bao&#8221;,-20230 d.add &#8221;bei&#8221;,-20051 d.add &#8221;ben&#8221;,-20036 d.add &#8221;beng&#8221;,-20032 d.add &#8221;bi&#8221;,-20026 d.add &#8221;bian&#8221;,-20002 d.add &#8221;biao&#8221;,-19990 d.add &#8221;bie&#8221;,-19986 d.add &#8221;bin&#8221;,-19982 d.add &#8221;bing&#8221;,-19976 d.add &#8221;bo&#8221;,-19805 d.add &#8221;bu&#8221;,-19784 d.add &#8221;ca&#8221;,-19775 d.add &#8221;cai&#8221;,-19774 d.add &#8221;can&#8221;,-19763 d.add &#8221;cang&#8221;,-19756 d.add &#8221;cao&#8221;,-19751 d.add &#8221;ce&#8221;,-19746 d.add &#8221;ceng&#8221;,-19741 d.add &#8221;cha&#8221;,-19739 d.add &#8221;chai&#8221;,-19728 d.add &#8221;chan&#8221;,-19725 d.add &#8221;chang&#8221;,-19715 d.add &#8221;chao&#8221;,-19540 d.add &#8221;che&#8221;,-19531 d.add &#8221;chen&#8221;,-19525 d.add &#8221;cheng&#8221;,-19515 d.add &#8221;chi&#8221;,-19500 d.add &#8221;chong&#8221;,-19484 d.add &#8221;chou&#8221;,-19479 d.add &#8221;chu&#8221;,-19467 d.add &#8221;chuai&#8221;,-19289 d.add &#8221;chuan&#8221;,-19288 d.add &#8221;chuang&#8221;,-19281 d.add &#8221;chui&#8221;,-19275 d.add &#8221;chun&#8221;,-19270 d.add &#8221;chuo&#8221;,-19263 d.add &#8221;ci&#8221;,-19261 d.add &#8221;cong&#8221;,-19249 d.add &#8221;cou&#8221;,-19243 d.add &#8221;cu&#8221;,-19242 d.add &#8221;cuan&#8221;,-19238 d.add &#8221;cui&#8221;,-19235 [...]]]></description>
			<content:encoded><![CDATA[<p>中国人都习惯于用拼音，常常把在SEO的时候，把URL的行字转化成拼音，有利于搜索引擎的识别，获的好的排名。这里分享一个用ASP把汉字转换成拼音的函数。希望各位看客喜欢！</p>
<p><span id="ArticleContent1_ArticleContent1_lblContent">&lt;%<br />
Set d = CreateObject(&#8220;Scripting.Dictionary&#8221;)<br />
d.add &#8221;a&#8221;,-20319<br />
d.add &#8221;ai&#8221;,-20317<br />
d.add &#8221;an&#8221;,-20304<br />
d.add &#8221;ang&#8221;,-20295<br />
d.add &#8221;ao&#8221;,-20292<br />
d.add &#8221;ba&#8221;,-20283<br />
d.add &#8221;bai&#8221;,-20265<br />
d.add &#8221;ban&#8221;,-20257<br />
d.add &#8221;bang&#8221;,-20242<br />
d.add &#8221;bao&#8221;,-20230<br />
d.add &#8221;bei&#8221;,-20051<br />
d.add &#8221;ben&#8221;,-20036<br />
d.add &#8221;beng&#8221;,-20032<br />
d.add &#8221;bi&#8221;,-20026<br />
d.add &#8221;bian&#8221;,-20002<br />
d.add &#8221;biao&#8221;,-19990<br />
d.add &#8221;bie&#8221;,-19986<br />
d.add &#8221;bin&#8221;,-19982<br />
d.add &#8221;bing&#8221;,-19976<br />
d.add &#8221;bo&#8221;,-19805<br />
d.add &#8221;bu&#8221;,-19784<br />
d.add &#8221;ca&#8221;,-19775<br />
d.add &#8221;cai&#8221;,-19774<br />
d.add &#8221;can&#8221;,-19763<br />
d.add &#8221;cang&#8221;,-19756<br />
d.add &#8221;cao&#8221;,-19751<br />
d.add &#8221;ce&#8221;,-19746<br />
d.add &#8221;ceng&#8221;,-19741<br />
d.add &#8221;cha&#8221;,-19739<br />
d.add &#8221;chai&#8221;,-19728<br />
d.add &#8221;chan&#8221;,-19725<br />
d.add &#8221;chang&#8221;,-19715<br />
d.add &#8221;chao&#8221;,-19540<br />
d.add &#8221;che&#8221;,-19531<br />
d.add &#8221;chen&#8221;,-19525<br />
d.add &#8221;cheng&#8221;,-19515<br />
d.add &#8221;chi&#8221;,-19500<br />
d.add &#8221;chong&#8221;,-19484<br />
d.add &#8221;chou&#8221;,-19479<br />
d.add &#8221;chu&#8221;,-19467<br />
d.add &#8221;chuai&#8221;,-19289<br />
d.add &#8221;chuan&#8221;,-19288<br />
d.add &#8221;chuang&#8221;,-19281<br />
d.add &#8221;chui&#8221;,-19275<br />
d.add &#8221;chun&#8221;,-19270<br />
d.add &#8221;chuo&#8221;,-19263<br />
d.add &#8221;ci&#8221;,-19261<br />
d.add &#8221;cong&#8221;,-19249<br />
d.add &#8221;cou&#8221;,-19243<br />
d.add &#8221;cu&#8221;,-19242<br />
d.add &#8221;cuan&#8221;,-19238<br />
d.add &#8221;cui&#8221;,-19235<br />
d.add &#8221;cun&#8221;,-19227<br />
d.add &#8221;cuo&#8221;,-19224<br />
d.add &#8221;da&#8221;,-19218<br />
d.add &#8221;dai&#8221;,-19212<br />
d.add &#8221;dan&#8221;,-19038<br />
d.add &#8221;dang&#8221;,-19023<br />
d.add &#8221;dao&#8221;,-19018<br />
d.add &#8221;de&#8221;,-19006<br />
d.add &#8221;deng&#8221;,-19003<br />
d.add &#8221;di&#8221;,-18996<br />
d.add &#8221;dian&#8221;,-18977<br />
d.add &#8221;diao&#8221;,-18961<br />
d.add &#8221;die&#8221;,-18952<br />
d.add &#8221;ding&#8221;,-18783<br />
d.add &#8221;diu&#8221;,-18774<br />
d.add &#8221;dong&#8221;,-18773<br />
d.add &#8221;dou&#8221;,-18763<br />
d.add &#8221;du&#8221;,-18756<br />
d.add &#8221;duan&#8221;,-18741<br />
d.add &#8221;dui&#8221;,-18735<br />
d.add &#8221;dun&#8221;,-18731<br />
d.add &#8221;duo&#8221;,-18722<br />
d.add &#8221;e&#8221;,-18710<br />
d.add &#8221;en&#8221;,-18697<br />
d.add &#8221;er&#8221;,-18696<br />
d.add &#8221;fa&#8221;,-18526<br />
d.add &#8221;fan&#8221;,-18518<br />
d.add &#8221;fang&#8221;,-18501<br />
d.add &#8221;fei&#8221;,-18490<br />
d.add &#8221;fen&#8221;,-18478<br />
d.add &#8221;feng&#8221;,-18463<br />
d.add &#8221;fo&#8221;,-18448<br />
d.add &#8221;fou&#8221;,-18447<br />
d.add &#8221;fu&#8221;,-18446<br />
d.add &#8221;ga&#8221;,-18239<br />
d.add &#8221;gai&#8221;,-18237<br />
d.add &#8221;gan&#8221;,-18231<br />
d.add &#8221;gang&#8221;,-18220<br />
d.add &#8221;gao&#8221;,-18211<br />
d.add &#8221;ge&#8221;,-18201<br />
d.add &#8221;gei&#8221;,-18184<br />
d.add &#8221;gen&#8221;,-18183<br />
d.add &#8221;geng&#8221;,-18181<br />
d.add &#8221;gong&#8221;,-18012<br />
d.add &#8221;gou&#8221;,-17997<br />
d.add &#8221;gu&#8221;,-17988<br />
d.add &#8221;gua&#8221;,-17970<br />
d.add &#8221;guai&#8221;,-17964<br />
d.add &#8221;guan&#8221;,-17961<br />
d.add &#8221;guang&#8221;,-17950<br />
d.add &#8221;gui&#8221;,-17947<br />
d.add &#8221;gun&#8221;,-17931<br />
d.add &#8221;guo&#8221;,-17928<br />
d.add &#8221;ha&#8221;,-17922<br />
d.add &#8221;hai&#8221;,-17759<br />
d.add &#8221;han&#8221;,-17752<br />
d.add &#8221;hang&#8221;,-17733<br />
d.add &#8221;hao&#8221;,-17730<br />
d.add &#8221;he&#8221;,-17721<br />
d.add &#8221;hei&#8221;,-17703<br />
d.add &#8221;hen&#8221;,-17701<br />
d.add &#8221;heng&#8221;,-17697<br />
d.add &#8221;hong&#8221;,-17692<br />
d.add &#8221;hou&#8221;,-17683<br />
d.add &#8221;hu&#8221;,-17676<br />
d.add &#8221;hua&#8221;,-17496<br />
d.add &#8221;huai&#8221;,-17487<br />
d.add &#8221;huan&#8221;,-17482<br />
d.add &#8221;huang&#8221;,-17468<br />
d.add &#8221;hui&#8221;,-17454<br />
d.add &#8221;hun&#8221;,-17433<br />
d.add &#8221;huo&#8221;,-17427<br />
d.add &#8221;ji&#8221;,-17417<br />
d.add &#8221;jia&#8221;,-17202<br />
d.add &#8221;jian&#8221;,-17185<br />
d.add &#8221;jiang&#8221;,-16983<br />
d.add &#8221;jiao&#8221;,-16970<br />
d.add &#8221;jie&#8221;,-16942<br />
d.add &#8221;jin&#8221;,-16915<br />
d.add &#8221;jing&#8221;,-16733<br />
d.add &#8221;jiong&#8221;,-16708<br />
d.add &#8221;jiu&#8221;,-16706<br />
d.add &#8221;ju&#8221;,-16689<br />
d.add &#8221;juan&#8221;,-16664<br />
d.add &#8221;jue&#8221;,-16657<br />
d.add &#8221;jun&#8221;,-16647<br />
d.add &#8221;ka&#8221;,-16474<br />
d.add &#8221;kai&#8221;,-16470<br />
d.add &#8221;kan&#8221;,-16465<br />
d.add &#8221;kang&#8221;,-16459<br />
d.add &#8221;kao&#8221;,-16452<br />
d.add &#8221;ke&#8221;,-16448<br />
d.add &#8221;ken&#8221;,-16433<br />
d.add &#8221;keng&#8221;,-16429<br />
d.add &#8221;kong&#8221;,-16427<br />
d.add &#8221;kou&#8221;,-16423<br />
d.add &#8221;ku&#8221;,-16419<br />
d.add &#8221;kua&#8221;,-16412<br />
d.add &#8221;kuai&#8221;,-16407<br />
d.add &#8221;kuan&#8221;,-16403<br />
d.add &#8221;kuang&#8221;,-16401<br />
d.add &#8221;kui&#8221;,-16393<br />
d.add &#8221;kun&#8221;,-16220<br />
d.add &#8221;kuo&#8221;,-16216<br />
d.add &#8221;la&#8221;,-16212<br />
d.add &#8221;lai&#8221;,-16205<br />
d.add &#8221;lan&#8221;,-16202<br />
d.add &#8221;lang&#8221;,-16187<br />
d.add &#8221;lao&#8221;,-16180<br />
d.add &#8221;le&#8221;,-16171<br />
d.add &#8221;lei&#8221;,-16169<br />
d.add &#8221;leng&#8221;,-16158<br />
d.add &#8221;li&#8221;,-16155<br />
d.add &#8221;lia&#8221;,-15959<br />
d.add &#8221;lian&#8221;,-15958<br />
d.add &#8221;liang&#8221;,-15944<br />
d.add &#8221;liao&#8221;,-15933<br />
d.add &#8221;lie&#8221;,-15920<br />
d.add &#8221;lin&#8221;,-15915<br />
d.add &#8221;ling&#8221;,-15903<br />
d.add &#8221;liu&#8221;,-15889<br />
d.add &#8221;long&#8221;,-15878<br />
d.add &#8221;lou&#8221;,-15707<br />
d.add &#8221;lu&#8221;,-15701<br />
d.add &#8221;lv&#8221;,-15681<br />
d.add &#8221;luan&#8221;,-15667<br />
d.add &#8221;lue&#8221;,-15661<br />
d.add &#8221;lun&#8221;,-15659<br />
d.add &#8221;luo&#8221;,-15652<br />
d.add &#8221;ma&#8221;,-15640<br />
d.add &#8221;mai&#8221;,-15631<br />
d.add &#8221;man&#8221;,-15625<br />
d.add &#8221;mang&#8221;,-15454<br />
d.add &#8221;mao&#8221;,-15448<br />
d.add &#8221;me&#8221;,-15436<br />
d.add &#8221;mei&#8221;,-15435<br />
d.add &#8221;men&#8221;,-15419<br />
d.add &#8221;meng&#8221;,-15416<br />
d.add &#8221;mi&#8221;,-15408<br />
d.add &#8221;mian&#8221;,-15394<br />
d.add &#8221;miao&#8221;,-15385<br />
d.add &#8221;mie&#8221;,-15377<br />
d.add &#8221;min&#8221;,-15375<br />
d.add &#8221;ming&#8221;,-15369<br />
d.add &#8221;miu&#8221;,-15363<br />
d.add &#8221;mo&#8221;,-15362<br />
d.add &#8221;mou&#8221;,-15183<br />
d.add &#8221;mu&#8221;,-15180<br />
d.add &#8221;na&#8221;,-15165<br />
d.add &#8221;nai&#8221;,-15158<br />
d.add &#8221;nan&#8221;,-15153<br />
d.add &#8221;nang&#8221;,-15150<br />
d.add &#8221;nao&#8221;,-15149<br />
d.add &#8221;ne&#8221;,-15144<br />
d.add &#8221;nei&#8221;,-15143<br />
d.add &#8221;nen&#8221;,-15141<br />
d.add &#8221;neng&#8221;,-15140<br />
d.add &#8221;ni&#8221;,-15139<br />
d.add &#8221;nian&#8221;,-15128<br />
d.add &#8221;niang&#8221;,-15121<br />
d.add &#8221;niao&#8221;,-15119<br />
d.add &#8221;nie&#8221;,-15117<br />
d.add &#8221;nin&#8221;,-15110<br />
d.add &#8221;ning&#8221;,-15109<br />
d.add &#8221;niu&#8221;,-14941<br />
d.add &#8221;nong&#8221;,-14937<br />
d.add &#8221;nu&#8221;,-14933<br />
d.add &#8221;nv&#8221;,-14930<br />
d.add &#8221;nuan&#8221;,-14929<br />
d.add &#8221;nue&#8221;,-14928<br />
d.add &#8221;nuo&#8221;,-14926<br />
d.add &#8221;o&#8221;,-14922<br />
d.add &#8221;ou&#8221;,-14921<br />
d.add &#8221;pa&#8221;,-14914<br />
d.add &#8221;pai&#8221;,-14908<br />
d.add &#8221;pan&#8221;,-14902<br />
d.add &#8221;pang&#8221;,-14894<br />
d.add &#8221;pao&#8221;,-14889<br />
d.add &#8221;pei&#8221;,-14882<br />
d.add &#8221;pen&#8221;,-14873<br />
d.add &#8221;peng&#8221;,-14871<br />
d.add &#8221;pi&#8221;,-14857<br />
d.add &#8221;pian&#8221;,-14678<br />
d.add &#8221;piao&#8221;,-14674<br />
d.add &#8221;pie&#8221;,-14670<br />
d.add &#8221;pin&#8221;,-14668<br />
d.add &#8221;ping&#8221;,-14663<br />
d.add &#8221;po&#8221;,-14654<br />
d.add &#8221;pu&#8221;,-14645<br />
d.add &#8221;qi&#8221;,-14630<br />
d.add &#8221;qia&#8221;,-14594<br />
d.add &#8221;qian&#8221;,-14429<br />
d.add &#8221;qiang&#8221;,-14407<br />
d.add &#8221;qiao&#8221;,-14399<br />
d.add &#8221;qie&#8221;,-14384<br />
d.add &#8221;qin&#8221;,-14379<br />
d.add &#8221;qing&#8221;,-14368<br />
d.add &#8221;qiong&#8221;,-14355<br />
d.add &#8221;qiu&#8221;,-14353<br />
d.add &#8221;qu&#8221;,-14345<br />
d.add &#8221;quan&#8221;,-14170<br />
d.add &#8221;que&#8221;,-14159<br />
d.add &#8221;qun&#8221;,-14151<br />
d.add &#8221;ran&#8221;,-14149<br />
d.add &#8221;rang&#8221;,-14145<br />
d.add &#8221;rao&#8221;,-14140<br />
d.add &#8221;re&#8221;,-14137<br />
d.add &#8221;ren&#8221;,-14135<br />
d.add &#8221;reng&#8221;,-14125<br />
d.add &#8221;ri&#8221;,-14123<br />
d.add &#8221;rong&#8221;,-14122<br />
d.add &#8221;rou&#8221;,-14112<br />
d.add &#8221;ru&#8221;,-14109<br />
d.add &#8221;ruan&#8221;,-14099<br />
d.add &#8221;rui&#8221;,-14097<br />
d.add &#8221;run&#8221;,-14094<br />
d.add &#8221;ruo&#8221;,-14092<br />
d.add &#8221;sa&#8221;,-14090<br />
d.add &#8221;sai&#8221;,-14087<br />
d.add &#8221;san&#8221;,-14083<br />
d.add &#8221;sang&#8221;,-13917<br />
d.add &#8221;sao&#8221;,-13914<br />
d.add &#8221;se&#8221;,-13910<br />
d.add &#8221;sen&#8221;,-13907<br />
d.add &#8221;seng&#8221;,-13906<br />
d.add &#8221;sha&#8221;,-13905<br />
d.add &#8221;shai&#8221;,-13896<br />
d.add &#8221;shan&#8221;,-13894<br />
d.add &#8221;shang&#8221;,-13878<br />
d.add &#8221;shao&#8221;,-13870<br />
d.add &#8221;she&#8221;,-13859<br />
d.add &#8221;shen&#8221;,-13847<br />
d.add &#8221;sheng&#8221;,-13831<br />
d.add &#8221;shi&#8221;,-13658<br />
d.add &#8221;shou&#8221;,-13611<br />
d.add &#8221;shu&#8221;,-13601<br />
d.add &#8221;shua&#8221;,-13406<br />
d.add &#8221;shuai&#8221;,-13404<br />
d.add &#8221;shuan&#8221;,-13400<br />
d.add &#8221;shuang&#8221;,-13398<br />
d.add &#8221;shui&#8221;,-13395<br />
d.add &#8221;shun&#8221;,-13391<br />
d.add &#8221;shuo&#8221;,-13387<br />
d.add &#8221;si&#8221;,-13383<br />
d.add &#8221;song&#8221;,-13367<br />
d.add &#8221;sou&#8221;,-13359<br />
d.add &#8221;su&#8221;,-13356<br />
d.add &#8221;suan&#8221;,-13343<br />
d.add &#8221;sui&#8221;,-13340<br />
d.add &#8221;sun&#8221;,-13329<br />
d.add &#8221;suo&#8221;,-13326<br />
d.add &#8221;ta&#8221;,-13318<br />
d.add &#8221;tai&#8221;,-13147<br />
d.add &#8221;tan&#8221;,-13138<br />
d.add &#8221;tang&#8221;,-13120<br />
d.add &#8221;tao&#8221;,-13107<br />
d.add &#8221;te&#8221;,-13096<br />
d.add &#8221;teng&#8221;,-13095<br />
d.add &#8221;ti&#8221;,-13091<br />
d.add &#8221;tian&#8221;,-13076<br />
d.add &#8221;tiao&#8221;,-13068<br />
d.add &#8221;tie&#8221;,-13063<br />
d.add &#8221;ting&#8221;,-13060<br />
d.add &#8221;tong&#8221;,-12888<br />
d.add &#8221;tou&#8221;,-12875<br />
d.add &#8221;tu&#8221;,-12871<br />
d.add &#8221;tuan&#8221;,-12860<br />
d.add &#8221;tui&#8221;,-12858<br />
d.add &#8221;tun&#8221;,-12852<br />
d.add &#8221;tuo&#8221;,-12849<br />
d.add &#8221;wa&#8221;,-12838<br />
d.add &#8221;wai&#8221;,-12831<br />
d.add &#8221;wan&#8221;,-12829<br />
d.add &#8221;wang&#8221;,-12812<br />
d.add &#8221;wei&#8221;,-12802<br />
d.add &#8221;wen&#8221;,-12607<br />
d.add &#8221;weng&#8221;,-12597<br />
d.add &#8221;wo&#8221;,-12594<br />
d.add &#8221;wu&#8221;,-12585<br />
d.add &#8221;xi&#8221;,-12556<br />
d.add &#8221;xia&#8221;,-12359<br />
d.add &#8221;xian&#8221;,-12346<br />
d.add &#8221;xiang&#8221;,-12320<br />
d.add &#8221;xiao&#8221;,-12300<br />
d.add &#8221;xie&#8221;,-12120<br />
d.add &#8221;xin&#8221;,-12099<br />
d.add &#8221;xing&#8221;,-12089<br />
d.add &#8221;xiong&#8221;,-12074<br />
d.add &#8221;xiu&#8221;,-12067<br />
d.add &#8221;xu&#8221;,-12058<br />
d.add &#8221;xuan&#8221;,-12039<br />
d.add &#8221;xue&#8221;,-11867<br />
d.add &#8221;xun&#8221;,-11861<br />
d.add &#8221;ya&#8221;,-11847<br />
d.add &#8221;yan&#8221;,-11831<br />
d.add &#8221;yang&#8221;,-11798<br />
d.add &#8221;yao&#8221;,-11781<br />
d.add &#8221;ye&#8221;,-11604<br />
d.add &#8221;yi&#8221;,-11589<br />
d.add &#8221;yin&#8221;,-11536<br />
d.add &#8221;ying&#8221;,-11358<br />
d.add &#8221;yo&#8221;,-11340<br />
d.add &#8221;yong&#8221;,-11339<br />
d.add &#8221;you&#8221;,-11324<br />
d.add &#8221;yu&#8221;,-11303<br />
d.add &#8221;yuan&#8221;,-11097<br />
d.add &#8221;yue&#8221;,-11077<br />
d.add &#8221;yun&#8221;,-11067<br />
d.add &#8221;za&#8221;,-11055<br />
d.add &#8221;zai&#8221;,-11052<br />
d.add &#8221;zan&#8221;,-11045<br />
d.add &#8221;zang&#8221;,-11041<br />
d.add &#8221;zao&#8221;,-11038<br />
d.add &#8221;ze&#8221;,-11024<br />
d.add &#8221;zei&#8221;,-11020<br />
d.add &#8221;zen&#8221;,-11019<br />
d.add &#8221;zeng&#8221;,-11018<br />
d.add &#8221;zha&#8221;,-11014<br />
d.add &#8221;zhai&#8221;,-10838<br />
d.add &#8221;zhan&#8221;,-10832<br />
d.add &#8221;zhang&#8221;,-10815<br />
d.add &#8221;zhao&#8221;,-10800<br />
d.add &#8221;zhe&#8221;,-10790<br />
d.add &#8221;zhen&#8221;,-10780<br />
d.add &#8221;zheng&#8221;,-10764<br />
d.add &#8221;zhi&#8221;,-10587<br />
d.add &#8221;zhong&#8221;,-10544<br />
d.add &#8221;zhou&#8221;,-10533<br />
d.add &#8221;zhu&#8221;,-10519<br />
d.add &#8221;zhua&#8221;,-10331<br />
d.add &#8221;zhuai&#8221;,-10329<br />
d.add &#8221;zhuan&#8221;,-10328<br />
d.add &#8221;zhuang&#8221;,-10322<br />
d.add &#8221;zhui&#8221;,-10315<br />
d.add &#8221;zhun&#8221;,-10309<br />
d.add &#8221;zhuo&#8221;,-10307<br />
d.add &#8221;zi&#8221;,-10296<br />
d.add &#8221;zong&#8221;,-10281<br />
d.add &#8221;zou&#8221;,-10274<br />
d.add &#8221;zu&#8221;,-10270<br />
d.add &#8221;zuan&#8221;,-10262<br />
d.add &#8221;zui&#8221;,-10260<br />
d.add &#8221;zun&#8221;,-10256<br />
d.add &#8221;zuo&#8221;,-10254</p>
<p>function g(num)<br />
if num&gt;0 and num&lt;160 then<br />
g=chr(num)<br />
else<br />
if num&lt;-20319 or num&gt;-10247 then<br />
g=&#8221;"<br />
else<br />
a=d.Items<br />
b=d.keys<br />
for i=d.count-1 to 0 step -1<br />
if a(i)&lt;=num then exit for<br />
next<br />
g=b(i)<br />
end if<br />
end if<br />
end function<br />
function c(str)<br />
c=&#8221;"<br />
for i=1 to len(str)<br />
c=c&amp;g(asc(mid(str,i,1)))<br />
next<br />
end function<br />
response.write c(request(&#8220;hz&#8221;))<br />
%&gt;<br />
&lt;form method=post&gt;<br />
请在此处输入中文：&lt;input name=hz&gt;<br />
&lt;/form&gt;<br />
</span></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.1xi.net/asp/hanzi-to-pinyin/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>用FSO组件对文件操作（三）</title>
		<link>http://blog.1xi.net/asp/fso-zujian-caozuo-3</link>
		<comments>http://blog.1xi.net/asp/fso-zujian-caozuo-3#comments</comments>
		<pubDate>Fri, 20 Feb 2009 02:14:52 +0000</pubDate>
		<dc:creator>FDS</dc:creator>
				<category><![CDATA[ASP]]></category>
		<category><![CDATA[FSO]]></category>
		<category><![CDATA[组件]]></category>

		<guid isPermaLink="false">http://blog.1xi.net/asp/fso-zujian-caozuo-3</guid>
		<description><![CDATA[一，fso.GetFile 提取文件相应的 File 对象 1，getfile.asp &#60;% whichfile=Server.MapPath(&#8220;cnbruce.txt&#8221;) Set fso = CreateObject(&#8220;Scripting.FileSystemObject&#8221;) Set f1 = fso.CreateTextFile(whichfile,true) f1.Write (&#8220;This is a test.My Name is cnbruce.&#8221;) f1.Close Set f2 = fso.GetFile(whichfile)   s = &#8221;文件名称：&#8221; &#38; f2.name &#38; &#8221;&#60;br&#62;&#8221; s = s &#38; &#8221;文件短路径名：&#8221; &#38; f2.shortPath &#38; &#8221;&#60;br&#62;&#8221; s = s &#38; &#8221;文件物理地址：&#8221; &#38; f2.Path &#38; &#8221;&#60;br&#62;&#8221; s = s &#38; &#8221;文件属性：&#8221; &#38; f2.Attributes &#38; &#8221;&#60;br&#62;&#8221; s = s &#38; &#8221;文件大小： &#8221; &#38; f2.size &#38; &#8221;&#60;br&#62;&#8221; s = s &#38; &#8221;文件类型： &#8221; &#38; f2.type &#38; &#8221;&#60;br&#62;&#8221; s = s &#38; &#8221;文件创建时间： &#8221; &#38; f2.DateCreated &#38; &#8221;&#60;br&#62;&#8221; s = s &#38; &#8221;最近访问时间: &#8221; &#38; f2.DateLastAccessed &#38; &#8221;&#60;br&#62;&#8221; s = s &#38; &#8221;最近修改时间: &#8221; &#38; f2.DateLastModified response.write(s) %&#62; 其效果正如右键某文件，看到的具体属性信息。 其中Attributes返回的数值“32”表示：（Archive）上次备份后已更改的文件。可读写。 其它值附录如下：   Normal        0      普通文件。               没有设置任何属性。  ReadOnly      1      只读文件。               可读写。  Hidden        2      隐藏文件。               可读写。  System        4      系统文件。               可读写。  Directory     16     文件夹或目录。           只读。  Archive       32     上次备份后已更改的文件。 可读写。  Alias         1024   链接或快捷方式。         只读。  Compressed    2048   压缩文件。               只读。  二，file.move 作用将指定的文件或文件夹从某位置移动到另一位置。其实该方法仍然属于fso.GetFile后的一个应用。 2，movefile.asp &#60;% whichfile=Server.MapPath(&#8220;cnbruce.txt&#8221;) Set fso = CreateObject(&#8220;Scripting.FileSystemObject&#8221;) Set f1 = fso.CreateTextFile(whichfile,true) f1.Write (&#8220;This is a test.My Name is cnbruce.&#8221;) f1.Close Set f2 = fso.GetFile(whichfile) f2.Move &#8221;C:\&#8221; %&#62; &#60;a href=&#8221;C:\&#8221;&#62;查看下有没有&#60;/a&#62; 简单的剪切粘贴的功能实现。 三，File.Copy 同样属于fso.GetFile后的一个应用。就只是单纯地拷贝文件到某位置。 3，copyfile.asp &#60;% whichfile=Server.MapPath(&#8220;cnbruce.txt&#8221;) Set fso = CreateObject(&#8220;Scripting.FileSystemObject&#8221;) Set f1 = fso.CreateTextFile(whichfile,true) [...]]]></description>
			<content:encoded><![CDATA[<p><span id="ArticleContent1_ArticleContent1_lblContent"><span style="font-size: x-small;"><strong>一，fso.GetFile<br />
</strong>提取文件相应的 File 对象</p>
<p>1，getfile.asp</p>
<p></span></p>
<table border="0" cellspacing="1" width="100%" bgcolor="#cccccc">
<tbody>
<tr>
<td bgcolor="#efefef">
<span style="font-size: x-small;">&lt;%<br />
whichfile=Server.MapPath(&#8220;cnbruce.txt&#8221;)<br />
Set fso = CreateObject(&#8220;Scripting.FileSystemObject&#8221;)<br />
Set f1 = fso.CreateTextFile(whichfile,true)<br />
f1.Write (&#8220;This is a test.My Name is cnbruce.&#8221;)<br />
f1.Close<br />
Set f2 = fso.GetFile(whichfile)<br />
 <br />
s = &#8221;文件名称：&#8221; &amp; f2.name &amp; &#8221;&lt;br&gt;&#8221;<br />
s = s &amp; &#8221;文件短路径名：&#8221; &amp; f2.shortPath &amp; &#8221;&lt;br&gt;&#8221;<br />
s = s &amp; &#8221;文件物理地址：&#8221; &amp; f2.Path &amp; &#8221;&lt;br&gt;&#8221;<br />
s = s &amp; &#8221;文件属性：&#8221; &amp; f2.Attributes &amp; &#8221;&lt;br&gt;&#8221;<br />
s = s &amp; &#8221;文件大小： &#8221; &amp; f2.size &amp; &#8221;&lt;br&gt;&#8221;<br />
s = s &amp; &#8221;文件类型： &#8221; &amp; f2.type &amp; &#8221;&lt;br&gt;&#8221;<br />
s = s &amp; &#8221;文件创建时间： &#8221; &amp; f2.DateCreated &amp; &#8221;&lt;br&gt;&#8221;<br />
s = s &amp; &#8221;最近访问时间: &#8221; &amp; f2.DateLastAccessed &amp; &#8221;&lt;br&gt;&#8221;<br />
s = s &amp; &#8221;最近修改时间: &#8221; &amp; f2.DateLastModified<br />
response.write(s)<br />
%&gt;</p>
<p></span></td>
</tr>
</tbody>
</table>
<p><span style="font-size: x-small;">其效果正如右键某文件，看到的具体属性信息。<br />
其中Attributes返回的数值“32”表示：（Archive）上次备份后已更改的文件。可读写。</p>
<p>其它值附录如下：</p>
<p></span></p>
<table border="0" cellspacing="1" width="100%" bgcolor="#cccccc">
<tbody>
<tr>
<td bgcolor="#efefef"><span style="font-size: x-small;"> <br />
Normal        0      普通文件。               没有设置任何属性。 <br />
ReadOnly      1      只读文件。               可读写。 <br />
Hidden        2      隐藏文件。               可读写。 <br />
System        4      系统文件。               可读写。 <br />
Directory     16     文件夹或目录。           只读。 <br />
Archive       32     上次备份后已更改的文件。 可读写。 <br />
Alias         1024   链接或快捷方式。         只读。 <br />
Compressed    2048   压缩文件。               只读。 </p>
<p></span></td>
</tr>
</tbody>
</table>
<p><span style="font-size: x-small;"><strong>二，file.move</strong><br />
作用将指定的文件或文件夹从某位置移动到另一位置。其实该方法仍然属于fso.GetFile后的一个应用。</p>
<p>2，movefile.asp</p>
<p></span></p>
<table border="0" cellspacing="1" width="100%" bgcolor="#cccccc">
<tbody>
<tr>
<td bgcolor="#efefef">
<span style="font-size: x-small;">&lt;%<br />
whichfile=Server.MapPath(&#8220;cnbruce.txt&#8221;)<br />
Set fso = CreateObject(&#8220;Scripting.FileSystemObject&#8221;)<br />
Set f1 = fso.CreateTextFile(whichfile,true)<br />
f1.Write (&#8220;This is a test.My Name is cnbruce.&#8221;)<br />
f1.Close<br />
Set f2 = fso.GetFile(whichfile)<br />
f2.Move &#8221;C:\&#8221;<br />
%&gt;<br />
&lt;a href=&#8221;C:\&#8221;&gt;查看下有没有&lt;/a&gt;</p>
<p></span></td>
</tr>
</tbody>
</table>
<p><span style="font-size: x-small;">简单的剪切粘贴的功能实现。</p>
<p><strong>三，File.Copy</strong><br />
同样属于fso.GetFile后的一个应用。就只是单纯地拷贝文件到某位置。</p>
<p>3，copyfile.asp</p>
<p></span></p>
<table border="0" cellspacing="1" width="100%" bgcolor="#cccccc">
<tbody>
<tr>
<td bgcolor="#efefef">
<span style="font-size: x-small;">&lt;%<br />
whichfile=Server.MapPath(&#8220;cnbruce.txt&#8221;)<br />
Set fso = CreateObject(&#8220;Scripting.FileSystemObject&#8221;)<br />
Set f1 = fso.CreateTextFile(whichfile,true)<br />
f1.Write (&#8220;This is a test.My Name is cnbruce.&#8221;)<br />
f1.Close<br />
Set f2 = fso.GetFile(whichfile)<br />
f2.Copy &#8221;D:\&#8221;<br />
%&gt;<br />
&lt;a href=&#8221;D:\&#8221;&gt;查看下有没有&lt;/a&gt;</p>
<p></span></td>
</tr>
</tbody>
</table>
<p><span style="font-size: x-small;">和本ASP页面同在目录下的cnbruce.txt文件依然存在。</p>
<p><strong>四，file.Delete</strong><br />
很显然，就是直接删除文件了。</p>
<p>4，delfile.asp</p>
<p></span></p>
<table border="0" cellspacing="1" width="100%" bgcolor="#cccccc">
<tbody>
<tr>
<td bgcolor="#efefef">
<span style="font-size: x-small;">&lt;%<br />
whichfile=Server.MapPath(&#8220;cnbruce.txt&#8221;)<br />
Set fso = CreateObject(&#8220;Scripting.FileSystemObject&#8221;)<br />
Set f1 = fso.CreateTextFile(whichfile,true)<br />
f1.Write (&#8220;This is a test.My Name is cnbruce.&#8221;)<br />
f1.Close<br />
Set f2 = fso.GetFile(whichfile)<br />
f2.move &#8221;d:\&#8221;<br />
Set f3 = fso.GetFile(&#8220;d:\cnbruce.txt&#8221;)<br />
f3.delete <br />
%&gt;<br />
&lt;a href=&#8221;d:\&#8221;&gt;查看下是没有该文件的&lt;/a&gt;<br />
</span></td>
</tr>
</tbody>
</table>
<p></span></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.1xi.net/asp/fso-zujian-caozuo-3/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>用FSO组件对文件操作（二）</title>
		<link>http://blog.1xi.net/asp/fso-zujian-caozuo-2</link>
		<comments>http://blog.1xi.net/asp/fso-zujian-caozuo-2#comments</comments>
		<pubDate>Fri, 20 Feb 2009 02:13:37 +0000</pubDate>
		<dc:creator>FDS</dc:creator>
				<category><![CDATA[ASP]]></category>
		<category><![CDATA[FSO]]></category>
		<category><![CDATA[组件]]></category>

		<guid isPermaLink="false">http://blog.1xi.net/asp/fso-zujian-caozuo-2</guid>
		<description><![CDATA[学会了FSO提取文件值，也学会了将信息输入到文件中，那下面就再来应用应用下。 不知道你有没有这样的习惯：看到一个文件，不自觉的右键选择用记事本打开。呵呵，几乎没有哪个文件是不可以的。所以现在，可以默认所有文件都是文本，只是后缀名不同而已；那么也就是说，现在可以提取任一文件的内容信息。OK，就来想象一下： 1，提取一个文件的路径（采用file按钮进行查找定位） 2，将该路径文件打开，并读取所有行 3，显示读取的信息 一、viewcode.asp &#60;% Function ShowCode(filename)      Set fso = Server.CreateObject(&#8220;Scripting.FileSystemObject&#8221;)     Set cnrs = fso.OpenTextFile(filename, 1)     While Not cnrs.AtEndOfStream         rsline = cnrs.ReadLine         rsline = server.HTMLEncode(rsline)         Response.Write(rsline &#38; &#8221;&#60;br&#62;&#8221;)     Wend end Function %&#62; &#60;form action=&#8221;viewcode.asp&#8221; method=&#8221;post&#8221;&#62; 输入文件名&#60;input type=&#8221;file&#8221; name=&#8221;filename&#8221;&#62; &#60;input type=&#8221;submit&#8221; value=&#8221;查看源程序&#8221;&#62; &#60;/form&#62; &#60;% file=request.form(&#8220;filename&#8221;) response.write (file &#38; &#8221;源程序如下&#60;hr&#62;&#8221;) If trim(file)&#60;&#62; &#8221;" then   Call ShowCode(file) End If %&#62; 以上程序调试时，可以选择html，asp页面，也可以打开任一应用程序等。 定义的ShowCode函数，主要作用是打开、读取并显示文件中所有信息内容。注意添加了server.HTMLEncode(rsline)，针对含有标准HTML代码的文件。 显示文件中所有行即用一条件循环进行遍历显示了。 While Not cnrs.AtEndOfStream &#8230; Wend 接着，下面的这个例题具体就涉及open方法的问题了，还记得？正常情况之下打开文件是采用fso.OpenTextFile(&#8220;c:\testfile.txt&#8221;,1)，参数1的作用是：以只读模式打开文件。不能对此文件进行写操作。如果现在已经存在一文件，需要进行追加写入，则该怎么办呢？简单，参数为8即可。 PS：这里还有一种读取的方法。 &#60;% whichfile=server.mappath(&#8220;test.txt&#8221;) Set fso = CreateObject(&#8220;Scripting.FileSystemObject&#8221;) Set txt = fso.OpenTextFile(whichfile,1) rline = txt.ReadAll rline=replace(Server.HtmlEncode(rline),Chr(13),&#8221;&#60;br&#62;&#8221;) Response.Write rline txt.Close %&#62; 这有什么用呢？呵呵，亚玛逊的网络故事接龙就是如此：能接龙就需要首先要显示原有故事，然后自己添加故事写入文件。这其中的写入文件最讲究的就是追加写入了。所以下面就可以实现。 二、story.asp &#60;% If not request.Form(&#8220;NextLine&#8221;)=&#8221;" then   Set fso=Server.CreateObject(&#8220;Scripting.FileSystemobject&#8221;)   textfile1=Server.MapPath(&#8220;story.txt&#8221;)   set cnrs=fso.OpenTextFile(textfile1,8)   cnrs.WriteLine(Request.Form(&#8220;NextLine&#8221;))   cnrs.Close end if [...]]]></description>
			<content:encoded><![CDATA[<p><span id="ArticleContent1_ArticleContent1_lblContent"><span style="font-size: x-small;">学会了FSO提取文件值，也学会了将信息输入到文件中，那下面就再来应用应用下。</p>
<p>不知道你有没有这样的习惯：看到一个文件，不自觉的右键选择用记事本打开。呵呵，几乎没有哪个文件是不可以的。所以现在，可以默认所有文件都是文本，只是后缀名不同而已；那么也就是说，现在可以提取任一文件的内容信息。OK，就来想象一下：</p>
<p>1，提取一个文件的路径（采用file按钮进行查找定位）<br />
2，将该路径文件打开，并读取所有行<br />
3，显示读取的信息</p>
<p><strong>一、viewcode.asp</strong></p>
<p></span></p>
<table border="0" cellspacing="1" width="100%" bgcolor="#cccccc">
<tbody>
<tr>
<td bgcolor="#efefef"><span style="font-size: x-small;">&lt;%<br />
Function ShowCode(filename) <br />
    Set fso = Server.CreateObject(&#8220;Scripting.FileSystemObject&#8221;)<br />
    Set cnrs = fso.OpenTextFile(filename, 1)<br />
    While Not cnrs.AtEndOfStream<br />
        rsline = cnrs.ReadLine<br />
        rsline = server.HTMLEncode(rsline)<br />
        Response.Write(rsline &amp; &#8221;&lt;br&gt;&#8221;)<br />
    Wend<br />
end Function<br />
%&gt;</p>
<p>&lt;form action=&#8221;viewcode.asp&#8221; method=&#8221;post&#8221;&gt;<br />
输入文件名&lt;input type=&#8221;file&#8221; name=&#8221;filename&#8221;&gt;<br />
&lt;input type=&#8221;submit&#8221; value=&#8221;查看源程序&#8221;&gt;<br />
&lt;/form&gt;</p>
<p>&lt;%<br />
file=request.form(&#8220;filename&#8221;)<br />
response.write (file &amp; &#8221;源程序如下&lt;hr&gt;&#8221;)<br />
If trim(file)&lt;&gt; &#8221;" then<br />
  Call ShowCode(file)<br />
End If<br />
%&gt;<br />
</span></td>
</tr>
</tbody>
</table>
<p><span style="font-size: x-small;">以上程序调试时，可以选择html，asp页面，也可以打开任一应用程序等。</p>
<p>定义的ShowCode函数，主要作用是打开、读取并显示文件中所有信息内容。注意添加了server.HTMLEncode(rsline)，针对含有标准HTML代码的文件。</p>
<p>显示文件中所有行即用一条件循环进行遍历显示了。<br />
While Not cnrs.AtEndOfStream<br />
&#8230;<br />
Wend</p>
<p>接着，下面的这个例题具体就涉及open方法的问题了，还记得？正常情况之下打开文件是采用fso.OpenTextFile(&#8220;c:\testfile.txt&#8221;,1)，参数1的作用是：以只读模式打开文件。不能对此文件进行写操作。如果现在已经存在一文件，需要进行追加写入，则该怎么办呢？简单，参数为8即可。</p>
<p>PS：这里还有一种读取的方法。</p>
<p></span></p>
<table border="0" cellspacing="1" width="100%" bgcolor="#cccccc">
<tbody>
<tr>
<td bgcolor="#efefef">
<span style="font-size: x-small;">&lt;%<br />
whichfile=server.mappath(&#8220;test.txt&#8221;)<br />
Set fso = CreateObject(&#8220;Scripting.FileSystemObject&#8221;)<br />
Set txt = fso.OpenTextFile(whichfile,1)<br />
rline = txt.ReadAll<br />
rline=replace(Server.HtmlEncode(rline),Chr(13),&#8221;&lt;br&gt;&#8221;)<br />
Response.Write rline<br />
txt.Close<br />
%&gt;</p>
<p></span></td>
</tr>
</tbody>
</table>
<p><span style="font-size: x-small;">这有什么用呢？呵呵，亚玛逊的网络故事接龙就是如此：能接龙就需要首先要显示原有故事，然后自己添加故事写入文件。这其中的写入文件最讲究的就是追加写入了。所以下面就可以实现。</p>
<p><strong>二、story.asp</strong></p>
<p></span></p>
<table border="0" cellspacing="1" width="100%" bgcolor="#cccccc">
<tbody>
<tr>
<td bgcolor="#efefef">
<span style="font-size: x-small;">&lt;%<br />
If not request.Form(&#8220;NextLine&#8221;)=&#8221;" then<br />
  Set fso=Server.CreateObject(&#8220;Scripting.FileSystemobject&#8221;)<br />
  textfile1=Server.MapPath(&#8220;story.txt&#8221;)<br />
  set cnrs=fso.OpenTextFile(textfile1,8)<br />
  cnrs.WriteLine(Request.Form(&#8220;NextLine&#8221;))<br />
  cnrs.Close<br />
end if<br />
%&gt;<br />
故事如下：<br />
&lt;%<br />
Set fso=Server.CreateObject(&#8220;Scripting.FileSystemObject&#8221;)<br />
textfile1=Server.MapPath(&#8220;story.txt&#8221;)<br />
set cnrs=fso.OpenTextFile(textfile1,1)<br />
while not cnrs.AtEndOfStream<br />
  Response.Write &#8221;&amp;nbsp;&#8221; &amp; cnrs.ReadLine<br />
wend<br />
cnrs.close<br />
%&gt;<br />
&lt;hr&gt;<br />
&lt;form method=&#8221;post&#8221; action=&#8221;story.asp&#8221;&gt;<br />
请输入这个故事的新行:&lt;input name=&#8221;NextLine&#8221; type=&#8221;text&#8221; size=&#8221;70&#8243;&gt;<br />
&lt;input type=&#8221;submit&#8221; value=&#8221;提交&#8221;&gt;<br />
&lt;/form&gt;</p>
<p></span></td>
</tr>
</tbody>
</table>
<p><span style="font-size: x-small;">整个就是一很简单的读取信息和加入信息的混合利用，相信有了前面的基础看懂应该不成问题。当然还缺少个story.txt文件，里面写好故事开头就可以了。</p>
<p></span><span style="font-size: x-small;"><br />
再下面，继续来，该侧重点主要就是练习一些函数的使用技巧了。</p>
<p>1，instr函数：返回某字符串在另一字符串中第一次出现的位置。<br />
比如现在查找字母“A”在字符串“A110B121C119D1861”中第一次出现的位置，则可以<br />
</span><textarea id="temp76682" class="bk" style="width: 90%;" cols="20" rows="12">&lt;script language=vbs&gt;my_string = &#8220;A110B121C119D1861&#8243;a_num = instr(my_string,&#8221;A&#8221;)alert(a_num)&lt;/script&gt;</textarea><br />
<input onclick="runEx('temp76682')" size="20" type="button" value="运行代码" /><span style="font-size: x-small;"> [Ctrl+A 全部选择 提示：你可先修改部分代码，再按运行]</p>
<p>同样字母“B”的位置也就能确定。现在就来最关键的：提前字母“A”和“B”中间的值“110”。<br />
还记得mid函数吗？mid函数的主要作用是：从字符串中返回指定数目的字符。<br />
比如现在的“110”则应该是从字符串的第2位取得3个单位的值。<br />
</span><textarea id="temp68396" class="bk" style="width: 90%;" cols="20" rows="12">&lt;script language=vbs&gt;my_string = &#8220;A110B121C119D1861&#8243;a_value = mid(my_string,2,3)alert(a_value)&lt;/script&gt;</textarea><br />
<input onclick="runEx('temp68396')" size="20" type="button" value="运行代码" /><span style="font-size: x-small;"> [Ctrl+A 全部选择 提示：你可先修改部分代码，再按运行]</p>
<p>但设想一下：如果不是“110”，而是“1100”，那是不是要提取4位……这样就显出程序的不够完美。<br />
所以继续思考：所提取的值，永远是在字母“A”后面的，且值也永远是在字母“A”和“B”之间的，那么只要分别提取出“A”、“B”的位置，则中间数值的起始位应是<strong>字母“A”位+1</strong>，中间数值的长度应是<strong>字母“B”位-字母“A”位-1</strong><br />
那么现在就可以让程序完美起来：</p>
<p></span><textarea id="temp46370" class="bk" style="width: 90%;" cols="20" rows="12">&lt;script language=vbs&gt;my_string = &#8220;A110B121C119D1861&#8243;a_num = instr(my_string,&#8221;A&#8221;)b_num = instr(my_string,&#8221;B&#8221;)a_value = mid(my_string,a_num+1,b_num-a_num-1)alert(a_value)&lt;/script&gt;</textarea><br />
<input onclick="runEx('temp46370')" size="20" type="button" value="运行代码" /><span style="font-size: x-small;"> [Ctrl+A 全部选择 提示：你可先修改部分代码，再按运行]</p>
<p>OK，那么现在你也就完全可以把字母“B”、“C”、“D”后面的值一一提取了。<br />
当然需要注意的就是“D”后面有几位怎么取呢？采用<strong>字符串总长度-字母D所在位置数</strong>就可以了。</p>
<p></span><textarea id="temp85891" class="bk" style="width: 90%;" cols="20" rows="12">&lt;script language=vbs&gt;my_string = &#8220;A110B121C119D1861&#8243;a_num = instr(my_string,&#8221;A&#8221;)b_num = instr(my_string,&#8221;B&#8221;)c_num = instr(my_string,&#8221;C&#8221;)d_num = instr(my_string,&#8221;D&#8221;)total_num = len(my_string)a_value = mid(my_string,a_num+1,b_num-a_num-1)b_value = mid(my_string,b_num+1,c_num-b_num-1)c_value = mid(my_string,c_num+1,d_num-c_num-1)d_value = mid(my_string,d_num+1,total_num-d_num)alert(a_value)alert(b_value)alert(c_value)alert(d_value)&lt;/script&gt;</textarea><br />
<input onclick="runEx('temp85891')" size="20" type="button" value="运行代码" /><span style="font-size: x-small;"> [Ctrl+A 全部选择 提示：你可先修改部分代码，再按运行]</p>
<p>用到现在，你也许确实学到了不少，但也许会提出疑问：这个放在FSO文件操作里有什么作用呢？<br />
那下面才是我们的正题：用FSO进行简单的文本投票。</p>
<p>投票页面首要的就是显示各类项目的投票数，并相应赋于某个变量。然后判断本次投票的选相，相对应地将投票数值加1，完毕后再将所有值继续写入文本。</p>
<p><strong>1，一个HTML表单页website.html</strong><br />
以做投票点击的平台。<br />
</span><textarea id="temp67328" class="bk" style="width: 90%;" cols="20" rows="12">&lt;form action=&#8221;result.asp&#8221; method=&#8221;post&#8221;&gt;&lt;input type=&#8221;radio&#8221; name=&#8221;website&#8221; value=&#8221;A&#8221; checked&gt; cnbruce.com&lt;br&gt;&lt;input type=&#8221;radio&#8221; name=&#8221;website&#8221; value=&#8221;B&#8221;&gt; blueidea.com&lt;br&gt;&lt;input type=&#8221;radio&#8221; name=&#8221;website&#8221; value=&#8221;C&#8221;&gt; it365cn.com&lt;br&gt;&lt;input type=&#8221;radio&#8221; name=&#8221;website&#8221; value=&#8221;D&#8221;&gt; 5d.cn&lt;br&gt;&lt;input type=&#8221;submit&#8221;&gt;&lt;input type=&#8221;reset&#8221;&gt;</textarea><br />
<input onclick="runEx('temp67328')" size="20" type="button" value="运行代码" /><span style="font-size: x-small;"> [Ctrl+A 全部选择 提示：你可先修改部分代码，再按运行]</p>
<p><strong>2，接受表单页值的result.asp</strong></p>
<p></span></p>
<table border="0" cellspacing="1" width="100%" bgcolor="#cccccc">
<tbody>
<tr>
<td bgcolor="#efefef">
<span style="font-size: x-small;">&lt;%<br />
whichfile=server.mappath(&#8220;site.txt&#8221;)<br />
set fso=createobject(&#8220;Scripting.FileSystemObject&#8221;)<br />
set thisfile=fso.opentextfile(whichfile)<br />
my_string=thisfile.readline</p>
<p>a_num = instr(my_string,&#8221;A&#8221;)<br />
b_num = instr(my_string,&#8221;B&#8221;)<br />
c_num = instr(my_string,&#8221;C&#8221;)<br />
d_num = instr(my_string,&#8221;D&#8221;)<br />
total_num = len(my_string)</p>
<p>a_value = mid(my_string,a_num+1,b_num-a_num-1)<br />
b_value = mid(my_string,b_num+1,c_num-b_num-1)<br />
c_value = mid(my_string,c_num+1,d_num-c_num-1)<br />
d_value = mid(my_string,d_num+1,total_num-d_num)</p>
<p>select case request.form(&#8220;website&#8221;)<br />
    case &#8221;A&#8221;: avalue=a_value+1<br />
    case &#8221;B&#8221;: bvalue=b_value+1<br />
    case &#8221;C&#8221;: cvalue=c_value+1<br />
    case &#8221;D&#8221;: dvalue=d_value+1<br />
end select</p>
<p>mynew_string=&#8221;A&#8221; &amp; cstr(a_value) &amp; &#8221;B&#8221; &amp; cstr(b_value) &amp; &#8221;C&#8221; &amp; cstr(c_value) &amp; &#8221;D&#8221; &amp; cstr(d_value)<br />
set newfile=fso.createtextfile(whichfile)<br />
newfile.writeLine(mynew_string)<br />
newfile.close<br />
set fso=nothing<br />
%&gt;<br />
当前投票：&lt;br&gt;<br />
cnbruce.com:&lt;%=a_value%&gt;&lt;br&gt;<br />
blueidea.com:&lt;%=b_value%&gt;&lt;br&gt;<br />
it356cn.com:&lt;%=c_value%&gt;&lt;br&gt;<br />
5d.cn:&lt;%=d_value%&gt;&lt;br&gt;<br />
&lt;a href=&#8221;website.html&#8221;&gt;返回继续&lt;/a&gt;</p>
<p></span></td>
</tr>
</tbody>
</table>
<p><span style="font-size: x-small;">有了上面函数的基础，看这个应该不是很难的</p>
<p><strong>3，最后不要忘了的记数文件site.txt</strong><br />
</span></span></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.1xi.net/asp/fso-zujian-caozuo-2/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>用FSO组件对文件操作（一）</title>
		<link>http://blog.1xi.net/asp/fso-zujian-caozuo-1</link>
		<comments>http://blog.1xi.net/asp/fso-zujian-caozuo-1#comments</comments>
		<pubDate>Fri, 20 Feb 2009 02:10:51 +0000</pubDate>
		<dc:creator>FDS</dc:creator>
				<category><![CDATA[ASP]]></category>
		<category><![CDATA[FSO]]></category>
		<category><![CDATA[组件]]></category>

		<guid isPermaLink="false">http://blog.1xi.net/asp/fso-zujian-caozuo-1</guid>
		<description><![CDATA[FSO中除了可以对驱动器、文件夹的操作以外，功能最强大的就是对文件的操作了。它可以用来记数、内容管理、搜索还可生成动态HTML页面等等。 一、fso.OpenTextFile 无需多说，fso.OpenTextFile就是打开某个文件了，一般情况之下是打开的txt文本文件。所以首先我们先建立一个txt文件，然后通过FSO来读取其中的内容。 1，info.txt   name:cnbruce sex:male 建立了该文件，下面再做个ASP页面，当然最好两个文件是在同一目录下。 2，opentxt.asp   &#60;% whichfile=server.mappath(&#8220;info.txt&#8221;) Set fso = CreateObject(&#8220;Scripting.FileSystemObject&#8221;) Set txt = fso.OpenTextFile(whichfile,1) rline = txt.ReadLine rline = rline &#38; &#8221;&#60;br&#62;&#8221; &#38; txt.ReadLine Response.Write rline txt.Close %&#62;  需要注意：无论是通过FSO打开驱动器、打开文件夹、打开文件，以及以后要接触到的打开数据库，都只能是打开绝对物理路径地址。但一般情况是上传到空间服务商那,不能很直接地了解到自己文件的所在位置，所以强烈推荐使用server.mappath方法：平台移植性强，适用性强。 CreateObject(&#8220;Scripting.FileSystemObject&#8221;)建立了FSO组件的连接，fso.OpenTextFile(whichfile,1)打开了info.txt该文件。参数“1”表示“ForReading：以只读方式打开文件。不能写这个文件。”，其他还有参数“2”表示“ForWriting：以写方式打开文件”，参数“8”表示“ForAppending：打开文件并从文件末尾开始写”。 打开了该文件，接下来是不是要显示文件中的内容？那就通过txt.ReadLine方法读取文本中的一整行，如果需要继续读取下一行，则继续使用txt.ReadLine方法。当然初此还有其它的读取方法，比如txt.Read(7)读取指定数量的字符，txt.ReadAll返回文本中的全部内容。 二、fso.CreateTextFile 如fso.CreateFolder建立文件夹般，fso.CreateTextFile则是建立文件了。 3，creattxt.asp   &#60;% whichfile=server.mappath(&#8220;info.txt&#8221;) Set fso = CreateObject(&#8220;Scripting.FileSystemObject&#8221;) Set MyFile = fso.CreateTextFile(whichfile,True) MyFile.WriteLine(&#8220;My Name Is CN-Bruce&#8221;) MyFile.WriteLine(&#8220;My Sex Is Male&#8221;) MyFile.Close %&#62; &#60;a href=&#8221;opentxt.asp&#8221;&#62;查看内容&#60;/a&#62;  本次建立的文件是上一info.txt文件，fso.CreateTextFile(whichfile,True)其中的参数true即表示能覆盖已有文件。建立后需要向里面添加数据就采用“MyFile.WriteLine”了。 那现在就可以建立一个简单的文本记数器了，还记得以前的记数？：1，通过application、session、global.asa进行记数；2，通过Counter组件进行记数。但两者都有通病，就是不能保存，如果服务器重新启动后，是不是所有记数全部清空了呢：）那现在就可以使用文本来记录数据了，即使重启，下次提取的也还是该文件。 试验：文本计数器 首先建立一记数的文本文件counter.txt，设定初始值为“1” 4，counter.txt   1 接着是记数的ASP文件，功能是显示文本的记数，本做加1的记数，然后还要将新的记数写入文本文件。 5，txtcount.asp   &#60;% whichfile=server.mappath(&#8220;counter.txt&#8221;) &#8216;打开文件并将其值读取，最后关闭连接释放资源 set fso=createobject(&#8220;Scripting.FileSystemObject&#8221;) set openfile=fso.opentextfile(whichfile,1) visitors=openfile.readline openfile.close &#8216;页面显示记数内容并做加1运算 response.write &#8221;您是本页的第&#8221;&#38;visitors&#38;&#8221;位访客&#8221; visitors=visitors+1 [...]]]></description>
			<content:encoded><![CDATA[<div><span id="ArticleContent1_ArticleContent1_lblContent"><span style="font-size: x-small;">FSO中除了可以对驱动器、文件夹的操作以外，功能最强大的就是对文件的操作了。它可以用来记数、内容管理、搜索还可生成动态HTML页面等等。</span></span></div>
<p><span id="ArticleContent1_ArticleContent1_lblContent"><span style="font-size: x-small;"><strong>一、fso.OpenTextFile</strong><br />
无需多说，fso.OpenTextFile就是打开某个文件了，一般情况之下是打开的txt文本文件。所以首先我们先建立一个txt文件，然后通过FSO来读取其中的内容。</p>
<p>1，info.txt</p>
<p> </p>
<p></span></p>
<table border="0" cellspacing="1" width="100%" bgcolor="#cccccc">
<tbody>
<tr>
<td bgcolor="#efefef"><span style="font-size: x-small;">name:cnbruce<br />
sex:male<br />
</span></td>
</tr>
</tbody>
</table>
<div><span style="font-size: x-small;">建立了该文件，下面再做个ASP页面，当然最好两个文件是在同一目录下。</span></div>
<p><span style="font-size: x-small;">2，opentxt.asp</p>
<p> </p>
<p></span></p>
<table border="0" cellspacing="1" width="100%" bgcolor="#cccccc">
<tbody>
<tr>
<td bgcolor="#efefef"><span style="font-size: x-small;">&lt;%<br />
whichfile=server.mappath(&#8220;info.txt&#8221;)<br />
Set fso = CreateObject(&#8220;Scripting.FileSystemObject&#8221;)<br />
Set txt = fso.OpenTextFile(whichfile,1)<br />
rline = txt.ReadLine<br />
rline = rline &amp; &#8221;&lt;br&gt;&#8221; &amp; txt.ReadLine<br />
Response.Write rline<br />
txt.Close<br />
%&gt; </p>
<p></span></td>
</tr>
</tbody>
</table>
<div><span style="font-size: x-small;">需要注意：无论是通过FSO打开驱动器、打开文件夹、打开文件，以及以后要接触到的打开数据库，都只能是打开<strong>绝对物理路径地址</strong>。但一般情况是上传到空间服务商那,不能很直接地了解到自己文件的所在位置，所以<strong>强烈推荐使用server.mappath</strong>方法：平台移植性强，适用性强。</span></div>
<p><span style="font-size: x-small;"><strong>CreateObject(&#8220;Scripting.FileSystemObject&#8221;)</strong>建立了FSO组件的连接，<strong>fso.OpenTextFile(whichfile,1)</strong>打开了info.txt该文件。参数“1”表示“ForReading：以只读方式打开文件。不能写这个文件。”，其他还有参数“2”表示“ForWriting：以写方式打开文件”，参数“8”表示“ForAppending：打开文件并从文件末尾开始写”。</p>
<p>打开了该文件，接下来是不是要显示文件中的内容？那就通过<strong>txt.ReadLine</strong>方法读取文本中的<strong>一整行</strong>，如果需要继续读取下一行，则继续使用txt.ReadLine方法。当然初此还有其它的读取方法，比如<strong>txt.Read(7)</strong>读取指定数量的字符，<strong>txt.ReadAll</strong>返回文本中的全部内容。</p>
<p><strong>二、fso.CreateTextFile</strong><br />
如fso.CreateFolder建立文件夹般，fso.CreateTextFile则是建立文件了。</p>
<p>3，creattxt.asp</p>
<p> </p>
<p></span></p>
<table border="0" cellspacing="1" width="100%" bgcolor="#cccccc">
<tbody>
<tr>
<td bgcolor="#efefef"><span style="font-size: x-small;">&lt;%<br />
whichfile=server.mappath(&#8220;info.txt&#8221;)<br />
Set fso = CreateObject(&#8220;Scripting.FileSystemObject&#8221;)<br />
Set MyFile = fso.CreateTextFile(whichfile,True)<br />
MyFile.WriteLine(&#8220;My Name Is CN-Bruce&#8221;)<br />
MyFile.WriteLine(&#8220;My Sex Is Male&#8221;)<br />
MyFile.Close<br />
%&gt;<br />
&lt;a href=&#8221;opentxt.asp&#8221;&gt;查看内容&lt;/a&gt; </p>
<p></span></td>
</tr>
</tbody>
</table>
<div><span style="font-size: x-small;">本次建立的文件是上一info.txt文件，<strong>fso.CreateTextFile(whichfile,True)</strong>其中的参数true即表示能覆盖已有文件。建立后需要向里面添加数据就采用“<strong>MyFile.WriteLine</strong>”了。</span></div>
<p><span style="font-size: x-small;">那现在就可以建立一个简单的文本记数器了，还记得以前的记数？：1，通过application、session、global.asa进行记数；2，通过Counter组件进行记数。但两者都有通病，就是不能保存，如果服务器重新启动后，是不是所有记数全部清空了呢：）那现在就可以使用文本来记录数据了，即使重启，下次提取的也还是该文件。</p>
<p><strong>试验：文本计数器</strong></p>
<p>首先建立一记数的文本文件counter.txt，设定初始值为“1”</p>
<p>4，counter.txt</p>
<p> </p>
<p></span></p>
<table border="0" cellspacing="1" width="100%" bgcolor="#cccccc">
<tbody>
<tr>
<td bgcolor="#efefef"><span style="font-size: x-small;">1<br />
</span></td>
</tr>
</tbody>
</table>
<div><span style="font-size: x-small;">接着是记数的ASP文件，功能是显示文本的记数，本做加1的记数，然后还要将新的记数写入文本文件。</span></div>
<p><span style="font-size: x-small;">5，txtcount.asp</p>
<p> </p>
<p></span></p>
<table border="0" cellspacing="1" width="100%" bgcolor="#cccccc">
<tbody>
<tr>
<td bgcolor="#efefef"><span style="font-size: x-small;">&lt;%<br />
whichfile=server.mappath(&#8220;counter.txt&#8221;)<br />
&#8216;打开文件并将其值读取，最后关闭连接释放资源<br />
set fso=createobject(&#8220;Scripting.FileSystemObject&#8221;)<br />
set openfile=fso.opentextfile(whichfile,1)<br />
visitors=openfile.readline<br />
openfile.close<br />
&#8216;页面显示记数内容并做加1运算<br />
response.write &#8221;您是本页的第&#8221;&amp;visitors&amp;&#8221;位访客&#8221;<br />
visitors=visitors+1<br />
&#8216;将新的数值添加写入到文本，最后关闭所有连接释放资源<br />
set creatfile=fso.createtextfile(whichfile)<br />
creatfile.writeLine(visitors)<br />
creatfile.close<br />
set fso=nothing<br />
%&gt; </p>
<p></span></td>
</tr>
</tbody>
</table>
<div><span style="font-size: x-small;">那根据这个可以继续地扩展内容：比如让记数用数字图片显示。当然前提就是你需要0-9的10张记数图片，并将此图片放于img文件夹中。<br />
下为一增强的txtcount.asp内容代码</span></div>
<p><span style="font-size: x-small;"> </p>
<p></span></p>
<table border="0" cellspacing="1" width="100%" bgcolor="#cccccc">
<tbody>
<tr>
<td bgcolor="#efefef"><span style="font-size: x-small;">&lt;%<br />
whichfile=server.mappath(&#8220;counter.txt&#8221;)set fso=createobject(&#8220;Scripting.FileSystemObject&#8221;)<br />
set openfile=fso.opentextfile(whichfile,1)<br />
visitors=openfile.readline<br />
openfile.close<br />
CountLen=len(visitors)<br />
response.write &#8221;您是本页的第&#8221;</p>
<p>for i=1 to 6-countLen        &#8217;表示最大值999999<br />
 response.write &#8221;&lt;img src=img/0.gif&gt;&lt;/img&gt;&#8221;<br />
next <br />
for i=1 to countlen<br />
 response.write &#8221;&lt;img src=img/&#8221; &amp; mid(visitors,i,1) &amp; &#8221;.gif&gt;&lt;/img&gt;&#8221;<br />
next<br />
response.write &#8221;位访客&#8221;</p>
<p>visitors=visitors+1<br />
set creatfile=fso.createtextfile(whichfile)<br />
creatfile.writeLine(visitors)<br />
creatfile.close<br />
set fso=nothing<br />
%&gt;</p>
<p> </p>
<p></span></td>
</tr>
</tbody>
</table>
<p><span style="font-size: x-small;">本程序中采用的是mid函数，该函数的作用是返回<strong>某字符串</strong>中从<strong>第几位</strong>字符开始的<strong>几个</strong>字符。格式即为：<strong>Mid(string,start,length)</strong><br />
</span><textarea id="temp30711" class="bk" style="width: 90%;" cols="20" rows="12">&lt;script language=vbs&gt;cn_string= &#8220;cnbruce love cnrose&#8221;cn_start = 9cn_length = 4alert (mid(cn_string,cn_start,cn_length))&lt;/script&gt;</textarea></p>
<input onclick="runEx('temp30711')" size="20" type="button" value="运行代码" /><span style="font-size: x-small;"> [Ctrl+A 全部选择 提示：你可先修改部分代码，再按运行]<br />
</span></p>
<p></span></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.1xi.net/asp/fso-zujian-caozuo-1/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>基带信号和宽带信号的区别</title>
		<link>http://blog.1xi.net/wangluo/jichuxinhao-kuandaixinhao</link>
		<comments>http://blog.1xi.net/wangluo/jichuxinhao-kuandaixinhao#comments</comments>
		<pubDate>Thu, 19 Feb 2009 01:54:55 +0000</pubDate>
		<dc:creator>FDS</dc:creator>
				<category><![CDATA[计算机网络]]></category>

		<guid isPermaLink="false">http://blog.1xi.net/wangluo/jichuxinhao-kuandaixinhao</guid>
		<description><![CDATA[ 基带信号就是将数字信号 1 或 0 直接用两种不同的电压来表示，然后送到线路上去传输。  宽带信号则是将基带信号进行调制后形成的频分复用模拟信号。 　　多路复用技术的基本原理是：各路信号在进入同一个有线的或无线的传输媒质之前，先采用调制技术把它们调制为互相不会混淆的已调制信号，然后进入传输媒质传送到对方，在对方再用解调（反调制）技术对这些信号加以区分，并使它们恢复成原来的信号，从而达到多路复用的目的。 　　常用的多路复用技术有频分多路复用技术和时分多路复用技术。频分多路复用是将各路信号分别调制到不同的频段进行传输，多用于模拟通信。时分多路复用技术是利用时间上离散的脉冲组成相互不重叠的多路信号，广泛应用于数字通信。频分多路复用和时分多路复用的基本原理如图所示。除了频分和时分多路复用技术外，还有一种波分复用技术。这是在光波频率范围内，把不同波长的光波，按一定间隔排列在一根光纤中传送。这种用于光纤通信的“波分复用”技术，现在正在迅速发展之中。   　常用的多路复用技术有频分多路复用技术和时分多路复用技术。 1.频分多路复用是将各路信号分别调制到不同的频段进行传输，多用于模拟通信。 2.时分多路复用技术是利用时间上离散的脉冲组成相互不重叠的多路信号，广泛应用于数字通信。 3.除了频分和时分多路复用技术外，还有一种波分复用技术。这是在光波频率范围内，把不同波长的光波，按一定间隔排列在一根光纤中传送。这种用于光纤通信的“波分复用”技术，现在正在迅速发展之中。 频分多路复用与时分多路复用的区别如下：   (1)微观上，频分多路复用的各路信号是并行的，而时分多路复用是串行的。   (2)频分多路复用较适合于模拟信号，而时分多路复用较适用于数字信号。 频分多路复用是将传输介质的可用带宽分割成一个个“频段”，以便每个输入装置都分配到一个“频段”。传输介质容许传输的最大带宽构成一个信道，因此每个“频段”就是一个子信道。 频分多路复用的特点是：每个用户终端的数据通过专门分配给它的予信道传输，在用户没有数据传输时，别的用户也不能使用。频分多路复用适合于模拟信号的频分传输，主要用于电话和电缆电视(CATV)系统，在数据通信系统中应和调制解调技术结合使用。]]></description>
			<content:encoded><![CDATA[<p> 基带信号就是将数字信号 1 或 0 直接用两种不同的电压来表示，然后送到线路上去传输。</p>
<p> 宽带信号则是将基带信号进行调制后形成的频分复用模拟信号。</p>
<p>　　多路复用技术的基本原理是：各路信号在进入同一个有线的或无线的传输媒质之前，先采用调制技术把它们调制为互相不会混淆的已调制信号，然后进入传输媒质传送到对方，在对方再用解调（反调制）技术对这些信号加以区分，并使它们恢复成原来的信号，从而达到多路复用的目的。</p>
<p>　　常用的多路复用技术有频分多路复用技术和时分多路复用技术。频分多路复用是将各路信号分别调制到不同的频段进行传输，多用于模拟通信。时分多路复用技术是利用时间上离散的脉冲组成相互不重叠的多路信号，广泛应用于数字通信。频分多路复用和时分多路复用的基本原理如图所示。除了频分和时分多路复用技术外，还有一种波分复用技术。这是在光波频率范围内，把不同波长的光波，按一定间隔排列在一根光纤中传送。这种用于光纤通信的“波分复用”技术，现在正在迅速发展之中。<br />
 <br />
　常用的多路复用技术有频分多路复用技术和时分多路复用技术。<br />
1.频分多路复用是将各路信号分别调制到不同的频段进行传输，多用于模拟通信。<br />
2.时分多路复用技术是利用时间上离散的脉冲组成相互不重叠的多路信号，广泛应用于数字通信。<br />
3.除了频分和时分多路复用技术外，还有一种波分复用技术。这是在光波频率范围内，把不同波长的光波，按一定间隔排列在一根光纤中传送。这种用于光纤通信的“波分复用”技术，现在正在迅速发展之中。</p>
<p>频分多路复用与时分多路复用的区别如下：<br />
  (1)微观上，频分多路复用的各路信号是并行的，而时分多路复用是串行的。</p>
<p>  (2)频分多路复用较适合于模拟信号，而时分多路复用较适用于数字信号。</p>
<p>频分多路复用是将传输介质的可用带宽分割成一个个“频段”，以便每个输入装置都分配到一个“频段”。传输介质容许传输的最大带宽构成一个信道，因此每个“频段”就是一个子信道。<br />
频分多路复用的特点是：每个用户终端的数据通过专门分配给它的予信道传输，在用户没有数据传输时，别的用户也不能使用。频分多路复用适合于模拟信号的频分传输，主要用于电话和电缆电视(CATV)系统，在数据通信系统中应和调制解调技术结合使用。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.1xi.net/wangluo/jichuxinhao-kuandaixinhao/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>目前的防火墙类型</title>
		<link>http://blog.1xi.net/wangluo/fanghuoqiang-leixing</link>
		<comments>http://blog.1xi.net/wangluo/fanghuoqiang-leixing#comments</comments>
		<pubDate>Thu, 19 Feb 2009 01:52:14 +0000</pubDate>
		<dc:creator>FDS</dc:creator>
				<category><![CDATA[计算机网络]]></category>
		<category><![CDATA[防火墙]]></category>

		<guid isPermaLink="false">http://blog.1xi.net/wangluo/fanghuoqiang-leixing</guid>
		<description><![CDATA[防火墙产品非常之多，划分的标准也比较杂。 主要分类如下： 1. 从软、硬件形式上分为 软件防火墙和硬件防火墙以及芯片级防火墙。 2. 从防火墙技术分为 “包过滤型”和“应用代理型”两大类。 3. 从防火墙结构分为 单一主机防火墙、路由器集成式防火墙和分布式防火墙三种。 4. 按防火墙的应用部署位置分为 边界防火墙、个人防火墙和混合防火墙三大类。 5. 按防火墙性能分为 百兆级防火墙和千兆级防火墙两类。]]></description>
			<content:encoded><![CDATA[<p style="TEXT-INDENT: 2em">防火墙产品非常之多，划分的标准也比较杂。 主要分类如下：</p>
<p style="TEXT-INDENT: 2em">1. 从软、硬件形式上分为</p>
<p style="TEXT-INDENT: 2em">软件防火墙和硬件防火墙以及芯片级防火墙。</p>
<p style="TEXT-INDENT: 2em">2. 从防火墙技术分为</p>
<p style="TEXT-INDENT: 2em">“包过滤型”和“应用代理型”两大类。</p>
<p style="TEXT-INDENT: 2em">3. 从防火墙结构分为</p>
<p style="TEXT-INDENT: 2em">单一主机防火墙、路由器集成式防火墙和分布式防火墙三种。</p>
<p style="TEXT-INDENT: 2em">4. 按防火墙的应用部署位置分为</p>
<p style="TEXT-INDENT: 2em">边界防火墙、个人防火墙和混合防火墙三大类。</p>
<p style="TEXT-INDENT: 2em">5. 按防火墙性能分为</p>
<p style="TEXT-INDENT: 2em">百兆级防火墙和千兆级防火墙两类。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.1xi.net/wangluo/fanghuoqiang-leixing/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>全国计算机等级考试二级公共基础知识</title>
		<link>http://blog.1xi.net/kaoshi/erji-kaoshi-gonggong-zhishi</link>
		<comments>http://blog.1xi.net/kaoshi/erji-kaoshi-gonggong-zhishi#comments</comments>
		<pubDate>Thu, 19 Feb 2009 01:37:26 +0000</pubDate>
		<dc:creator>FDS</dc:creator>
				<category><![CDATA[计算机考试]]></category>

		<guid isPermaLink="false">http://blog.1xi.net/kaoshi/erji-kaoshi-gonggong-zhishi</guid>
		<description><![CDATA[全国计算机等级考试二级公共基础知识，大家参考下吧。 基本要求 1. 掌握算法的基本概念。 2. 掌握基本数据结构及其操作。 3. 掌握基本排序和查找算法。 4. 掌握逐步求精的结构化程序设计方法。 5. 掌握软件工程的基本方法，具有初步应用相关技术进行软件开发的能力。 6. 掌握数据的基本知识，了解关系数据库的设计。   考试内容 一、 基本数据结构与算法 1. 算法的基本概念；算法复杂度的概念和意义（时间复杂度与空间复杂度）。 2. 数据结构的定义；数据的逻辑结构与存储结构；数据结构的图形表示；线性结构与非线性结构的概念。 3. 线性表的定义；线性表的顺序存储结构及其插入与删除运算。 4. 栈和队列的定义；栈和队列的顺序存储结构及其基本运算。 5. 线性单链表、双向链表与循环链表的结构及其基本运算。 6. 树的基本概念；二叉树的定义及其存储结构；二叉树的前序、中序和后序遍历。 7. 顺序查找与二分法查找算法；基本排序算法（交换类排序，选择类排序，插入类排序）。 二、 程序设计基础 1. 程序设计方法与风格。 2. 结构化程序设计。 3. 面向对象的程序设计方法，对象，方法，属性及继承与多态性。 三、 软件工程基础 1. 软件工程基本概念，软件生命周戎概念，软件工具与软件开发环境。 2. 结构化分析方法，数据流图，数据字典，软件需求规格说明书。 3. 结构化设计方法，总体设计与详细设计。 4. 软件测试的方法，白盒测试与黑盒测试，测试用例设计，软件测试的实施，单元测试、集成测试和系统测试。 5. 程序的调试，静态调试与动态调试。 四、 数据库设计基础 [...]]]></description>
			<content:encoded><![CDATA[<p>全国计算机等级考试二级公共基础知识，大家参考下吧。</p>
<p>基本要求<br />
1. 掌握算法的基本概念。<br />
2. 掌握基本数据结构及其操作。<br />
3. 掌握基本排序和查找算法。<br />
4. 掌握逐步求精的结构化程序设计方法。<br />
5. 掌握软件工程的基本方法，具有初步应用相关技术进行软件开发的能力。<br />
6. 掌握数据的基本知识，了解关系数据库的设计。<br />
<br />
<br />
考试内容<br />
一、 基本数据结构与算法<br />
1. 算法的基本概念；算法复杂度的概念和意义（时间复杂度与空间复杂度）。<br />
2. 数据结构的定义；数据的逻辑结构与存储结构；数据结构的图形表示；线性结构与非线性结构的概念。<br />
3. 线性表的定义；线性表的顺序存储结构及其插入与删除运算。<br />
4. 栈和队列的定义；栈和队列的顺序存储结构及其基本运算。<br />
5. 线性单链表、双向链表与循环链表的结构及其基本运算。<br />
6. 树的基本概念；二叉树的定义及其存储结构；二叉树的前序、中序和后序遍历。<br />
7. 顺序查找与二分法查找算法；基本排序算法（交换类排序，选择类排序，插入类排序）。<br />
二、 程序设计基础<br />
1. 程序设计方法与风格。<br />
2. 结构化程序设计。<br />
3. 面向对象的程序设计方法，对象，方法，属性及继承与多态性。<br />
三、 软件工程基础<br />
1. 软件工程基本概念，软件生命周戎概念，软件工具与软件开发环境。<br />
2. 结构化分析方法，数据流图，数据字典，软件需求规格说明书。<br />
3. 结构化设计方法，总体设计与详细设计。<br />
4. 软件测试的方法，白盒测试与黑盒测试，测试用例设计，软件测试的实施，单元测试、集成测试和系统测试。<br />
5. 程序的调试，静态调试与动态调试。<br />
四、 数据库设计基础<br />
1. 数据库的基本概念：数据库，数据库管理系统，数据库系统。<br />
2. 数据模型，实体联系模型及E-R图，从E-R图导出关系数据模型。<br />
3. 关系代数运算，包括集合运算及选择、投影、连接运算，数据库规范化理论。<br />
4. 数据库设计方法和步骤：需求分析、概念设计、逻辑设计和物理设计的相关策略。<br />
<br />
<br />
考试方式<br />
1、 公共基础的考试方式为笔试，与C语言（VisualBASIC、Visual FoxPro、Java、Access、Visual C++）的笔试部分合为一张试卷。公共基础部分占全卷的30分。<br />
2、 公共基础知识有10道选择题和5道填空题。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.1xi.net/kaoshi/erji-kaoshi-gonggong-zhishi/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>利用PHP生成图像</title>
		<link>http://blog.1xi.net/php/php-shengcheng-tuxiang</link>
		<comments>http://blog.1xi.net/php/php-shengcheng-tuxiang#comments</comments>
		<pubDate>Wed, 21 Jan 2009 05:58:44 +0000</pubDate>
		<dc:creator>FDS</dc:creator>
				<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://blog.1xi.net/php/php-shengcheng-tuxiang</guid>
		<description><![CDATA[ 生成图像，PHP可以操作处理图像。如果你已经安装了GD库，你甚至可以利用PHP生成图像。 &#60;? Header(&#8220;Content-type: image/gif&#8221;); $string=implode($argv,&#8221; &#8220;); $im = imagecreatefromgif(&#8220;images/button1.gif&#8221;); $orange = ImageColorAllocate($im, 220, 210, 60); $px = (imagesx($im)-7.5*strlen($string))/2; ImageString($im,3,$px,9,$string,$orange); ImageGif($im); ImageDestroy($im); ?&#62; （译者注：以上代码段缺少注释，请读者参考PHP Manual的图像处理函数部分） 　　这段代码在其他页面中通过以下标记&#60;img src=http://www.okzz.cn/button.php3?text&#8221;&#62;调用，然后以上的那段button.php3代码取得text值并在另外取得的图像文件中加上该值&#8211;在以上的代码中该图像文件是images/button1.gif&#8211;最后输出到浏览器。假如你想在表单域中使用图像按钮，但是又不希望在每次按钮上的文字改变后不得不重新生成新的图像，就可以利用这样简单的方法动态生成图像文件。]]></description>
			<content:encoded><![CDATA[<p> 生成图像，PHP可以操作处理图像。如果你已经安装了GD库，你甚至可以利用PHP生成图像。<br />
&lt;?<br />
Header(&#8220;Content-type: image/gif&#8221;);<br />
$string=implode($argv,&#8221; &#8220;);<br />
$im = imagecreatefromgif(&#8220;images/button1.gif&#8221;);<br />
$orange = ImageColorAllocate($im, 220, 210, 60);<br />
$px = (imagesx($im)-7.5*strlen($string))/2;<br />
ImageString($im,3,$px,9,$string,$orange);<br />
ImageGif($im);<br />
ImageDestroy($im);<br />
?&gt;</p>
<p>（译者注：以上代码段缺少注释，请读者参考PHP Manual的图像处理函数部分）</p>
<p>　　这段代码在其他页面中通过以下标记&lt;img src=http://www.okzz.cn/button.php3?text&#8221;&gt;调用，然后以上的那段button.php3代码取得text值并在另外取得的图像文件中加上该值&#8211;在以上的代码中该图像文件是images/button1.gif&#8211;最后输出到浏览器。假如你想在表单域中使用图像按钮，但是又不希望在每次按钮上的文字改变后不得不重新生成新的图像，就可以利用这样简单的方法动态生成图像文件。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.1xi.net/php/php-shengcheng-tuxiang/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>SQL SERVER技巧三</title>
		<link>http://blog.1xi.net/shujuku/sql-server-jiqiao-3</link>
		<comments>http://blog.1xi.net/shujuku/sql-server-jiqiao-3#comments</comments>
		<pubDate>Wed, 21 Jan 2009 05:56:23 +0000</pubDate>
		<dc:creator>FDS</dc:creator>
				<category><![CDATA[数据库]]></category>
		<category><![CDATA[SQL SERVER]]></category>

		<guid isPermaLink="false">http://blog.1xi.net/shujuku/sql-server-jiqiao-3</guid>
		<description><![CDATA[维护Sql Server中表的索引 　　在使用和创建数据库索引中经常会碰到一些问题，在这里可以采用一些另类的方法解决…  　　&#8211;第一步：查看是否需要维护，查看扫描密度/Scan Density是否为100% 　　declare @table_id int 　　set @table_id=object_id(&#8216;表名&#8217;) 　　dbcc showcontig(@table_id)   　　&#8211;第二步:重构表索引 　　dbcc dbreindex(&#8216;表名&#8217;,pk_索引名,100) 　　&#8211;重做第一步，如发现扫描密度/Scan Density还是小于100%则重构表的所有索引 　　&#8211;杨铮：并不一定能达100%。 　　dbcc dbreindex(&#8216;表名&#8217;,&#8221;,100) 　　SQL Server补丁安装常见问题 　　谁碰到问题就看看咯：） 　　一、补丁安装过程中常见问题 　　如果在安装补丁的时候遇到如下类似错误： 　　1、安装过程中出现“以前进行的程序创建了挂起的文件操作，运行安装程序前，必须重新启动”，请按照下面步骤解决： 　　a、重启机器，再进行安装，如果发现还有该错误，请按下面步骤 　　b、在开始-&#62;运行中输入regedit 　　c、到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager 位置 　　d、选择文件-&#62;倒出,保存 　　e、在右边窗口右击PendingFileRenameOperations，选择删除，然后确认 　　f、重启安装，问题解决 　　如果还有同样问题，请检查其它注册表中是否有该值存在，如有请删掉。 　　2、在安装SQL Server SP3，有时候会出现：无论用windows认证还是混和认证，都出现密码错误的情况，这时查看临时目录下的sqlsp.out，会发现以下描述： 　　[TCP/IP Sockets]Specified SQL server not found. 　　[TCP/IP Sockets]ConnectionOpen (Connect()). 　　其实这是SQL Server SP3的一个小bug，在安装sp3的时候，没有监听tcp/ip端口，可以按照以下步骤进行： 　　1、打开SQL server客户器网络实用工具和服务器网络工具，确保启用的协议中包含name pipe，并且位置在第一位. 　　2、确保[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\Client\ConnectTo] [...]]]></description>
			<content:encoded><![CDATA[<p>维护Sql Server中表的索引</p>
<p>　　在使用和创建数据库索引中经常会碰到一些问题，在这里可以采用一些另类的方法解决… </p>
<p>　　&#8211;第一步：查看是否需要维护，查看扫描密度/Scan Density是否为100%</p>
<p>　　declare @table_id int<br />
　　set @table_id=object_id(&#8216;表名&#8217;)<br />
　　dbcc showcontig(@table_id)</p>
<p> </p>
<p>　　&#8211;第二步:重构表索引<br />
　　dbcc dbreindex(&#8216;表名&#8217;,pk_索引名,100)</p>
<p>　　&#8211;重做第一步，如发现扫描密度/Scan Density还是小于100%则重构表的所有索引<br />
　　&#8211;杨铮：并不一定能达100%。<br />
　　dbcc dbreindex(&#8216;表名&#8217;,&#8221;,100)</p>
<p>　　SQL Server补丁安装常见问题<br />
　　谁碰到问题就看看咯：）</p>
<p>　　一、补丁安装过程中常见问题</p>
<p>　　如果在安装补丁的时候遇到如下类似错误：</p>
<p>　　1、安装过程中出现“以前进行的程序创建了挂起的文件操作，运行安装程序前，必须重新启动”，请按照下面步骤解决：</p>
<p>　　a、重启机器，再进行安装，如果发现还有该错误，请按下面步骤<br />
　　b、在开始-&gt;运行中输入regedit<br />
　　c、到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager 位置<br />
　　d、选择文件-&gt;倒出,保存<br />
　　e、在右边窗口右击PendingFileRenameOperations，选择删除，然后确认<br />
　　f、重启安装，问题解决</p>
<p>　　如果还有同样问题，请检查其它注册表中是否有该值存在，如有请删掉。</p>
<p>　　2、在安装SQL Server SP3，有时候会出现：无论用windows认证还是混和认证，都出现密码错误的情况，这时查看临时目录下的sqlsp.out，会发现以下描述：<br />
　　[TCP/IP Sockets]Specified SQL server not found.<br />
　　[TCP/IP Sockets]ConnectionOpen (Connect()).<br />
　　其实这是SQL Server SP3的一个小bug，在安装sp3的时候，没有监听tcp/ip端口，可以按照以下步骤进行：</p>
<p>　　1、打开SQL server客户器网络实用工具和服务器网络工具，确保启用的协议中包含name pipe，并且位置在第一位.</p>
<p>　　2、确保[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\Client\ConnectTo]<br />
　　&#8221;DSQUERY&#8221;=&#8221;DBNETLIB&#8221;.<br />
　　如果没有，请自己建立<br />
　　3、停止mssql.<br />
　　4、进行安装.</p>
<p>　　这样就可以进行正确安装了。</p>
<p>　　二、SQL Server补丁版本的检查</p>
<p>　　SQL Server的补丁版本检查不如Windows 补丁版本检查直接，一个系统管理员，如果不了解SQL Server版本对应的补丁号，可能也会遇到一点麻烦，因此在这说明一下，通过这样的办法判别机器是安全的办法，不会对系统产生任何影响。</p>
<p>　　1、用Isql或者SQL查询分析器登录到SQL Server，如果是用Isql，请在cmd窗口输入isql -U sa,然后输入密码，进入；如果是用SQL查询分析器，请从程序中启动，输入sa和密码（也可以用windows验证）。</p>
<p>　　2、在ISQL中输入：<br />
　　Select @@Version；<br />
　　go</p>
<p>　　或者SQL查询分析器中输入(其实如果不想输入，只要打开帮助的关于就可以了:))<br />
　　Select @@Version；<br />
　　然后按执行；<br />
　　这时会返回SQL的版本信息，如下：<br />
　　Microsoft SQL Server 2000 &#8211; 8.00.760 (Intel X86) Dec 17 2002 14:22:05 Copyright (c) 1988-2003 Microsoft Corporation Enterprise Edition on Windows NT 5.0 (Build 2195: Service Pack 3)</p>
<p>　　其中的8.00.760就是SQL Server的版本和补丁号。对应关系如下：</p>
<p>　　8.00.194 －——————SQL Server 2000 RTM<br />
　　8.00.384 －——————(SP1)<br />
　　8.00.534 －——————(SP2)<br />
　　8.00.760 －——————(SP3)</p>
<p>　　这样我们就能看到SQL Server的正确版本和补丁号了。</p>
<p>　　我们也可以用xp_msver看到更详细的信息</p>
<p>　　Sql Server数据库的备份和恢复措施<br />
　　最常用的操作，新手们看看……</p>
<p>　　一、备份数据库</p>
<p>　　1、打开SQL企业管理器，在控制台根目录中依次点开Microsoft SQL Server<br />
　　2、SQL Server组&#8211;&gt;双击打开你的服务器&#8211;&gt;双击打开数据库目录<br />
　　3、选择你的数据库名称（如论坛数据库Forum）&#8211;&gt;然后点上面菜单中的工具&#8211;&gt;选择备份数据库<br />
　　4、备份选项选择完全备份，目的中的备份到如果原来有路径和名称则选中名称点删除，然后点添加，如果原来没有路径和名称则直接选择添加，接着指定路径和文件名，指定后点确定返回备份窗口，接着点确定进行备份</p>
<p>　　二、还原数据库</p>
<p>　　1、打开SQL企业管理器，在控制台根目录中依次点开Microsoft SQL Server</p>
<p>　　2、SQL Server组&#8211;&gt;双击打开你的服务器&#8211;&gt;点图标栏的新建数据库图标，新建数据库的名字自行取</p>
<p>　　3、点击新建好的数据库名称（如论坛数据库Forum）&#8211;&gt;然后点上面菜单中的工具&#8211;&gt;选择恢复数据库</p>
<p>　　4、在弹出来的窗口中的还原选项中选择从设备&#8211;&gt;点选择设备&#8211;&gt;点添加&#8211;&gt;然后选择你的备份文件名&#8211;&gt;添加后点确定返回，这时候设备栏应该出现您刚才选择的数据库备份文件名，备份号默认为1（如果您对同一个文件做过多次备份，可以点击备份号旁边的查看内容，在复选框中选择最新的一次备份后点确定）&#8211;&gt;然后点击上方常规旁边的选项按钮</p>
<p>　　5、在出现的窗口中选择在现有数据库上强制还原，以及在恢复完成状态中选择使数据库可以继续运行但无法还原其它事务日志的选项。在窗口的中间部位的将数据库文件还原为这里要按照你SQL的安装进行设置（也可以指定自己的目录），逻辑文件名不需要改动，移至物理文件名要根据你所恢复的机器情况做改动，如您的SQL数据库装在D:\Program Files\Microsoft SQL Server\MSSQL\Data，那么就按照您恢复机器的目录进行相关改动改动，并且最后的文件名最好改成您当前的数据库名（如原来是bbs_data.mdf，现在的数据库是forum，就改成forum_data.mdf），日志和数据文件都要按照这样的方式做相关的改动（日志的文件名是*_log.ldf结尾的），这里的恢复目录您可以自由设置，前提是该目录必须存在（如您可以指定d:\sqldata\bbs_data.mdf或者d:\sqldata\bbs_log.ldf），否则恢复将报错</p>
<p>　　6、修改完成后，点击下面的确定进行恢复，这时会出现一个进度条，提示恢复的进度，恢复完成后系统会自动提示成功，如中间提示报错，请记录下相关的错误内容并询问对SQL操作比较熟悉的人员，一般的错误无非是目录错误或者文件名重复或者文件名错误或者空间不够或者数据库正在使用中的错误，数据库正在使用的错误您可以尝试关闭所有关于SQL窗口然后重新打开进行恢复操作，如果还提示正在使用的错误可以将SQL服务停止然后重起看看，至于上述其它的错误一般都能按照错误内容做相应改动后即可恢复</p>
<p>　　三、收缩数据库</p>
<p>　　一般情况下，SQL数据库的收缩并不能很大程度上减小数据库大小，其主要作用是收缩日志大小，应当定期进行此操作以免数据库日志过大。</p>
<p>　　1、设置数据库模式为简单模式：打开SQL企业管理器，在控制台根目录中依次点开Microsoft SQL Server&#8211;&gt;SQL Server组&#8211;&gt;双击打开你的服务器&#8211;&gt;双击打开数据库目录&#8211;&gt;选择你的数据库名称（如论坛数据库Forum）&#8211;&gt;然后点击右键选择属性&#8211;&gt;选择选项&#8211;&gt;在故障还原的模式中选择“简单”，然后按确定保存<br />
　　2、在当前数据库上点右键，看所有任务中的收缩数据库，一般里面的默认设置不用调整，直接点确定<br />
　　3、收缩数据库完成后，建议将您的数据库属性重新设置为标准模式，操作方法同第一点，因为日志在一些异常情况下往往是恢复数据库的重要依据。</p>
<p>　　四、设定每日自动备份数据库</p>
<p>　　强烈建议有条件的用户进行此操作！</p>
<p>　　1、打开企业管理器，在控制台根目录中依次点开Microsoft SQL Server&#8211;&gt;SQL Server组&#8211;&gt;双击打开你的服务器</p>
<p>　　2、然后点上面菜单中的工具&#8211;&gt;选择数据库维护计划器</p>
<p>　　3、下一步选择要进行自动备份的数据&#8211;&gt;下一步更新数据优化信息，这里一般不用做选择&#8211;&gt;下一步检查数据完整性，也一般不选择</p>
<p>　　4、下一步指定数据库维护计划，默认的是1周备份一次，点击更改选择每天备份后点确定</p>
<p>　　5、下一步指定备份的磁盘目录，选择指定目录，如您可以在D盘新建一个目录如：d:\databak，然后在这里选择使用此目录，如果您的数据库比较多最好选择为每个数据库建立子目录，然后选择删除早于多少天前的备份，一般设定4－7天，这看您的具体备份要求，备份文件扩展名一般都是bak就用默认的<br />
　　6、下一步指定事务日志备份计划，看您的需要做选择&#8211;&gt;下一步要生成的报表，一般不做选择&#8211;&gt;下一步维护计划历史记录，最好用默认的选项&#8211;&gt;下一步完成</p>
<p>　　7、完成后系统很可能会提示Sql Server Agent服务未启动，先点确定完成计划设定，然后找到桌面最右边状态栏中的SQL绿色图标，双击点开，在服务中选择Sql Server Agent，然后点击运行箭头，选上下方的当启动OS时自动启动服务</p>
<p>　　8、这个时候数据库计划已经成功的运行了，他将按照您上面的设置进行自动备份</p>
<p>　　修改计划：</p>
<p>　　1、打开企业管理器，在控制台根目录中依次点开Microsoft SQL Server&#8211;&gt;SQL Server组&#8211;&gt;双击打开你的服务器&#8211;&gt;管理&#8211;&gt;数据库维护计划&#8211;&gt;打开后可看到你设定的计划，可以进行修改或者删除操作</p>
<p>　　五、数据的转移（新建数据库或转移服务器）</p>
<p>　　一般情况下，最好使用备份和还原操作来进行转移数据，在特殊情况下，可以用导入导出的方式进行转移，这里介绍的就是导入导出方式，导入导出方式转移数据一个作用就是可以在收缩数据库无效的情况下用来减小（收缩）数据库的大小，本操作默认为您对SQL的操作有一定的了解，如果对其中的部分操作不理解，可以咨询动网相关人员或者查询网上资料</p>
<p>　　1、将原数据库的所有表、存储过程导出成一个SQL文件，导出的时候注意在选项中选择编写索引脚本和编写主键、外键、默认值和检查约束脚本选项</p>
<p>　　2、新建数据库，对新建数据库执行第一步中所建立的SQL文件</p>
<p>　　3、用SQL的导入导出方式，对新数据库导入原数据库中的所有表内容</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.1xi.net/shujuku/sql-server-jiqiao-3/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

