<?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; ASP</title>
	<atom:link href="http://blog.1xi.net/category/asp/feed" rel="self" type="application/rss+xml" />
	<link>http://blog.1xi.net</link>
	<description>收藏和分享</description>
	<lastBuildDate>Thu, 30 Jul 2009 03:40:55 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		
<!-- Start Of Script Generated By WP-PostViews Plus -->
<script type='text/javascript' src='http://blog.1xi.net/wp-includes/js/jquery/jquery.js?ver=1.3.2'></script>
<script type="text/javascript">
/* <![CDATA[ */
/* ]]> */
</script>
<!-- End Of Script Generated By WP-PostViews Plus -->
	<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 ## 如果您有更好的代码优化, 相关改进, 请记得告诉我, 非常谢谢!
  Rem #################################################################
  Public LocalVersion, LastVersion, FileType
  Public UrlVersion, UrlUpdate, [...]]]></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>在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;          :  coder  =  coder  &#38;&#8221;&#38;gt;&#8221;
Case  &#8220;&#38;&#8221;          :  coder  =  coder  &#38;&#8221;&#38;amp;&#8221;
Case  chr(9)    :  [...]]]></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>ASP动态显示页面的锚链接</title>
		<link>http://blog.1xi.net/asp/asp-maolianjie</link>
		<comments>http://blog.1xi.net/asp/asp-maolianjie#comments</comments>
		<pubDate>Mon, 04 May 2009 10:20:40 +0000</pubDate>
		<dc:creator>fangds</dc:creator>
				<category><![CDATA[ASP]]></category>
		<category><![CDATA[超链接]]></category>

		<guid isPermaLink="false">http://blog.1xi.net/flash/asp-maolianjie</guid>
		<description><![CDATA[锚点是“top”，可以放在页面的任何位置，一般是页首。程序红色部分是关键，就是对锚点出现的判断，我设置的数值是4，意思是出现4个动态数据就出现一个锚点，少于4个时因为还在同一个页面，就不需要有锚点出现，这个数值可以根据实际情况进行修改。为了对页面进行进行美化，可以把锚点的文字用图形]]></description>
			<content:encoded><![CDATA[<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; mso-char-indent-count: 2.0"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">锚点是“</span><span lang="EN-US">top</span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">”，可以放在页面的任何位置，一般是页首。程序红色部分是关键，就是对锚点出现的判断，我设置的数值是</span><span lang="EN-US">4</span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，意思是出现</span><span lang="EN-US">4</span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">个动态数据就出现一个锚点，少于</span><span lang="EN-US">4</span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">个时因为还在同一个页面，就不需要有锚点出现，这个数值可以根据实际情况进行修改。为了对页面进行进行美化，可以把锚点的文字用图形</span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">。</span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"> </span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US">&lt;a name=&#8221;top&#8221;&gt;&lt;/a&gt;</span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US">…&#8230;(</span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">具体内容省略</span><span lang="EN-US">)</span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US">&lt;% </span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US">While ((Repeat2__numRows &lt;&gt; 0) AND (NOT rsp.EOF)) </span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US">%&gt; </span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US">…&#8230;(</span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">具体内容省略</span><span lang="EN-US">)</span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US">&lt;% </span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><span style="mso-spacerun: yes">  </span>Repeat2__index=Repeat2__index+1</span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><span style="mso-spacerun: yes">  </span>Repeat2__numRows=Repeat2__numRows-1</span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span style="COLOR: red" lang="EN-US"><span style="mso-spacerun: yes">  </span>if Repeat2__numRows &lt; </span><span style="COLOR: blue" lang="EN-US">4</span><span style="COLOR: red" lang="EN-US"> then</span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span style="COLOR: red" lang="EN-US"><span style="mso-spacerun: yes">  </span>Response.Write(&#8220;&lt;table width=400 border=0 cellpadding=0 cellspacing=1&gt;&lt;tr&gt;&lt;td align=right&gt;&lt;a href=#top&gt;</span><span style="COLOR: blue" lang="EN-US">top</span><span style="COLOR: red" lang="EN-US">&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#8221;)</span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span style="COLOR: red" lang="EN-US"><span style="mso-spacerun: yes">  </span>else</span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span style="COLOR: red" lang="EN-US"><span style="mso-spacerun: yes">  </span>Response.Write(&#8220;&lt;table width=400 border=0 cellpadding=0 cellspacing=1&gt;&lt;tr&gt;&lt;td align=right&gt;a&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#8221;)</span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span style="COLOR: red" lang="EN-US"><span style="mso-spacerun: yes">  </span>end if<span style="mso-spacerun: yes">  </span></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><span style="mso-spacerun: yes">  </span>rsp.MoveNext()</span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US">Wend</span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US">%&gt;</span></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.1xi.net/asp/asp-maolianjie/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;
显示的记录
&#60;% i=i+2                                                                                                 
rs.movenext                                                                                                 
if i&#62;=rs.PageSize then exit do
loop                                                                   
%&#62;
3、输出分页效果
&#60;table width=&#8221;778&#8243; border=&#8221;0&#8243; align=&#8221;center&#8221; cellpadding=&#8221;0&#8243; cellspacing=&#8221;0&#8243;&#62;
  &#60;tr align=&#8221;center&#8221;&#62;
    &#60;% if rs.pagecount=1 then %&#62;
    &#60;td height=&#8221;35&#8243; colspan=&#8221;4&#8243; class=001&#62;&#60;font color=&#8221;#000000&#8243;&#62;共有[&#60;font color="#ff0000"&#62;&#60;%=rs.recordcount%&#62;&#60;/font&#62;]条信息 当前显示第 &#60;font color=&#8221;red&#8221;&#62;1～&#60;%=rs.recordcount%&#62;&#60;/font&#62;条&#60;/font&#62;&#60;/td&#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>用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
d.add &#8221;cun&#8221;,-19227
d.add &#8221;cuo&#8221;,-19224
d.add &#8221;da&#8221;,-19218
d.add &#8221;dai&#8221;,-19212
d.add &#8221;dan&#8221;,-19038
d.add &#8221;dang&#8221;,-19023
d.add &#8221;dao&#8221;,-19018
d.add &#8221;de&#8221;,-19006
d.add &#8221;deng&#8221;,-19003
d.add &#8221;di&#8221;,-18996
d.add &#8221;dian&#8221;,-18977
d.add &#8221;diao&#8221;,-18961
d.add &#8221;die&#8221;,-18952
d.add &#8221;ding&#8221;,-18783
d.add &#8221;diu&#8221;,-18774
d.add &#8221;dong&#8221;,-18773
d.add &#8221;dou&#8221;,-18763
d.add &#8221;du&#8221;,-18756
d.add &#8221;duan&#8221;,-18741
d.add &#8221;dui&#8221;,-18735
d.add &#8221;dun&#8221;,-18731
d.add &#8221;duo&#8221;,-18722
d.add &#8221;e&#8221;,-18710
d.add &#8221;en&#8221;,-18697
d.add &#8221;er&#8221;,-18696
d.add &#8221;fa&#8221;,-18526
d.add &#8221;fan&#8221;,-18518
d.add &#8221;fang&#8221;,-18501
d.add &#8221;fei&#8221;,-18490
d.add &#8221;fen&#8221;,-18478
d.add &#8221;feng&#8221;,-18463
d.add &#8221;fo&#8221;,-18448
d.add &#8221;fou&#8221;,-18447
d.add &#8221;fu&#8221;,-18446
d.add &#8221;ga&#8221;,-18239
d.add &#8221;gai&#8221;,-18237
d.add &#8221;gan&#8221;,-18231
d.add &#8221;gang&#8221;,-18220
d.add &#8221;gao&#8221;,-18211
d.add &#8221;ge&#8221;,-18201
d.add &#8221;gei&#8221;,-18184
d.add &#8221;gen&#8221;,-18183
d.add &#8221;geng&#8221;,-18181
d.add &#8221;gong&#8221;,-18012
d.add &#8221;gou&#8221;,-17997
d.add &#8221;gu&#8221;,-17988
d.add &#8221;gua&#8221;,-17970
d.add &#8221;guai&#8221;,-17964
d.add &#8221;guan&#8221;,-17961
d.add &#8221;guang&#8221;,-17950
d.add &#8221;gui&#8221;,-17947
d.add &#8221;gun&#8221;,-17931
d.add &#8221;guo&#8221;,-17928
d.add &#8221;ha&#8221;,-17922
d.add &#8221;hai&#8221;,-17759
d.add &#8221;han&#8221;,-17752
d.add &#8221;hang&#8221;,-17733
d.add &#8221;hao&#8221;,-17730
d.add &#8221;he&#8221;,-17721
d.add &#8221;hei&#8221;,-17703
d.add &#8221;hen&#8221;,-17701
d.add &#8221;heng&#8221;,-17697
d.add &#8221;hong&#8221;,-17692
d.add &#8221;hou&#8221;,-17683
d.add &#8221;hu&#8221;,-17676
d.add &#8221;hua&#8221;,-17496
d.add &#8221;huai&#8221;,-17487
d.add &#8221;huan&#8221;,-17482
d.add &#8221;huang&#8221;,-17468
d.add &#8221;hui&#8221;,-17454
d.add &#8221;hun&#8221;,-17433
d.add &#8221;huo&#8221;,-17427
d.add &#8221;ji&#8221;,-17417
d.add &#8221;jia&#8221;,-17202
d.add &#8221;jian&#8221;,-17185
d.add &#8221;jiang&#8221;,-16983
d.add &#8221;jiao&#8221;,-16970
d.add &#8221;jie&#8221;,-16942
d.add &#8221;jin&#8221;,-16915
d.add &#8221;jing&#8221;,-16733
d.add &#8221;jiong&#8221;,-16708
d.add &#8221;jiu&#8221;,-16706
d.add &#8221;ju&#8221;,-16689
d.add &#8221;juan&#8221;,-16664
d.add &#8221;jue&#8221;,-16657
d.add &#8221;jun&#8221;,-16647
d.add &#8221;ka&#8221;,-16474
d.add &#8221;kai&#8221;,-16470
d.add &#8221;kan&#8221;,-16465
d.add &#8221;kang&#8221;,-16459
d.add &#8221;kao&#8221;,-16452
d.add &#8221;ke&#8221;,-16448
d.add &#8221;ken&#8221;,-16433
d.add &#8221;keng&#8221;,-16429
d.add &#8221;kong&#8221;,-16427
d.add &#8221;kou&#8221;,-16423
d.add &#8221;ku&#8221;,-16419
d.add &#8221;kua&#8221;,-16412
d.add &#8221;kuai&#8221;,-16407
d.add &#8221;kuan&#8221;,-16403
d.add &#8221;kuang&#8221;,-16401
d.add &#8221;kui&#8221;,-16393
d.add &#8221;kun&#8221;,-16220
d.add &#8221;kuo&#8221;,-16216
d.add &#8221;la&#8221;,-16212
d.add &#8221;lai&#8221;,-16205
d.add &#8221;lan&#8221;,-16202
d.add &#8221;lang&#8221;,-16187
d.add &#8221;lao&#8221;,-16180
d.add &#8221;le&#8221;,-16171
d.add &#8221;lei&#8221;,-16169
d.add &#8221;leng&#8221;,-16158
d.add &#8221;li&#8221;,-16155
d.add &#8221;lia&#8221;,-15959
d.add &#8221;lian&#8221;,-15958
d.add &#8221;liang&#8221;,-15944
d.add &#8221;liao&#8221;,-15933
d.add &#8221;lie&#8221;,-15920
d.add &#8221;lin&#8221;,-15915
d.add &#8221;ling&#8221;,-15903
d.add &#8221;liu&#8221;,-15889
d.add &#8221;long&#8221;,-15878
d.add &#8221;lou&#8221;,-15707
d.add &#8221;lu&#8221;,-15701
d.add &#8221;lv&#8221;,-15681
d.add &#8221;luan&#8221;,-15667
d.add &#8221;lue&#8221;,-15661
d.add &#8221;lun&#8221;,-15659
d.add &#8221;luo&#8221;,-15652
d.add &#8221;ma&#8221;,-15640
d.add &#8221;mai&#8221;,-15631
d.add &#8221;man&#8221;,-15625
d.add &#8221;mang&#8221;,-15454
d.add &#8221;mao&#8221;,-15448
d.add &#8221;me&#8221;,-15436
d.add &#8221;mei&#8221;,-15435
d.add &#8221;men&#8221;,-15419
d.add &#8221;meng&#8221;,-15416
d.add &#8221;mi&#8221;,-15408
d.add &#8221;mian&#8221;,-15394
d.add &#8221;miao&#8221;,-15385
d.add &#8221;mie&#8221;,-15377
d.add &#8221;min&#8221;,-15375
d.add &#8221;ming&#8221;,-15369
d.add &#8221;miu&#8221;,-15363
d.add &#8221;mo&#8221;,-15362
d.add &#8221;mou&#8221;,-15183
d.add &#8221;mu&#8221;,-15180
d.add &#8221;na&#8221;,-15165
d.add &#8221;nai&#8221;,-15158
d.add &#8221;nan&#8221;,-15153
d.add &#8221;nang&#8221;,-15150
d.add &#8221;nao&#8221;,-15149
d.add &#8221;ne&#8221;,-15144
d.add &#8221;nei&#8221;,-15143
d.add &#8221;nen&#8221;,-15141
d.add &#8221;neng&#8221;,-15140
d.add &#8221;ni&#8221;,-15139
d.add &#8221;nian&#8221;,-15128
d.add &#8221;niang&#8221;,-15121
d.add &#8221;niao&#8221;,-15119
d.add &#8221;nie&#8221;,-15117
d.add &#8221;nin&#8221;,-15110
d.add &#8221;ning&#8221;,-15109
d.add &#8221;niu&#8221;,-14941
d.add &#8221;nong&#8221;,-14937
d.add &#8221;nu&#8221;,-14933
d.add &#8221;nv&#8221;,-14930
d.add &#8221;nuan&#8221;,-14929
d.add &#8221;nue&#8221;,-14928
d.add &#8221;nuo&#8221;,-14926
d.add &#8221;o&#8221;,-14922
d.add &#8221;ou&#8221;,-14921
d.add &#8221;pa&#8221;,-14914
d.add &#8221;pai&#8221;,-14908
d.add &#8221;pan&#8221;,-14902
d.add &#8221;pang&#8221;,-14894
d.add &#8221;pao&#8221;,-14889
d.add &#8221;pei&#8221;,-14882
d.add &#8221;pen&#8221;,-14873
d.add &#8221;peng&#8221;,-14871
d.add &#8221;pi&#8221;,-14857
d.add &#8221;pian&#8221;,-14678
d.add &#8221;piao&#8221;,-14674
d.add &#8221;pie&#8221;,-14670
d.add &#8221;pin&#8221;,-14668
d.add &#8221;ping&#8221;,-14663
d.add &#8221;po&#8221;,-14654
d.add &#8221;pu&#8221;,-14645
d.add &#8221;qi&#8221;,-14630
d.add &#8221;qia&#8221;,-14594
d.add &#8221;qian&#8221;,-14429
d.add &#8221;qiang&#8221;,-14407
d.add &#8221;qiao&#8221;,-14399
d.add &#8221;qie&#8221;,-14384
d.add &#8221;qin&#8221;,-14379
d.add &#8221;qing&#8221;,-14368
d.add &#8221;qiong&#8221;,-14355
d.add &#8221;qiu&#8221;,-14353
d.add &#8221;qu&#8221;,-14345
d.add &#8221;quan&#8221;,-14170
d.add &#8221;que&#8221;,-14159
d.add &#8221;qun&#8221;,-14151
d.add &#8221;ran&#8221;,-14149
d.add &#8221;rang&#8221;,-14145
d.add &#8221;rao&#8221;,-14140
d.add &#8221;re&#8221;,-14137
d.add &#8221;ren&#8221;,-14135
d.add &#8221;reng&#8221;,-14125
d.add &#8221;ri&#8221;,-14123
d.add &#8221;rong&#8221;,-14122
d.add &#8221;rou&#8221;,-14112
d.add &#8221;ru&#8221;,-14109
d.add &#8221;ruan&#8221;,-14099
d.add &#8221;rui&#8221;,-14097
d.add &#8221;run&#8221;,-14094
d.add &#8221;ruo&#8221;,-14092
d.add &#8221;sa&#8221;,-14090
d.add &#8221;sai&#8221;,-14087
d.add &#8221;san&#8221;,-14083
d.add &#8221;sang&#8221;,-13917
d.add &#8221;sao&#8221;,-13914
d.add &#8221;se&#8221;,-13910
d.add &#8221;sen&#8221;,-13907
d.add &#8221;seng&#8221;,-13906
d.add &#8221;sha&#8221;,-13905
d.add &#8221;shai&#8221;,-13896
d.add &#8221;shan&#8221;,-13894
d.add &#8221;shang&#8221;,-13878
d.add &#8221;shao&#8221;,-13870
d.add &#8221;she&#8221;,-13859
d.add &#8221;shen&#8221;,-13847
d.add &#8221;sheng&#8221;,-13831
d.add &#8221;shi&#8221;,-13658
d.add &#8221;shou&#8221;,-13611
d.add &#8221;shu&#8221;,-13601
d.add &#8221;shua&#8221;,-13406
d.add &#8221;shuai&#8221;,-13404
d.add &#8221;shuan&#8221;,-13400
d.add &#8221;shuang&#8221;,-13398
d.add &#8221;shui&#8221;,-13395
d.add &#8221;shun&#8221;,-13391
d.add &#8221;shuo&#8221;,-13387
d.add &#8221;si&#8221;,-13383
d.add &#8221;song&#8221;,-13367
d.add &#8221;sou&#8221;,-13359
d.add &#8221;su&#8221;,-13356
d.add &#8221;suan&#8221;,-13343
d.add &#8221;sui&#8221;,-13340
d.add &#8221;sun&#8221;,-13329
d.add &#8221;suo&#8221;,-13326
d.add &#8221;ta&#8221;,-13318
d.add &#8221;tai&#8221;,-13147
d.add &#8221;tan&#8221;,-13138
d.add &#8221;tang&#8221;,-13120
d.add &#8221;tao&#8221;,-13107
d.add &#8221;te&#8221;,-13096
d.add &#8221;teng&#8221;,-13095
d.add &#8221;ti&#8221;,-13091
d.add &#8221;tian&#8221;,-13076
d.add &#8221;tiao&#8221;,-13068
d.add &#8221;tie&#8221;,-13063
d.add &#8221;ting&#8221;,-13060
d.add &#8221;tong&#8221;,-12888
d.add &#8221;tou&#8221;,-12875
d.add &#8221;tu&#8221;,-12871
d.add &#8221;tuan&#8221;,-12860
d.add &#8221;tui&#8221;,-12858
d.add &#8221;tun&#8221;,-12852
d.add &#8221;tuo&#8221;,-12849
d.add &#8221;wa&#8221;,-12838
d.add &#8221;wai&#8221;,-12831
d.add &#8221;wan&#8221;,-12829
d.add &#8221;wang&#8221;,-12812
d.add &#8221;wei&#8221;,-12802
d.add &#8221;wen&#8221;,-12607
d.add &#8221;weng&#8221;,-12597
d.add &#8221;wo&#8221;,-12594
d.add &#8221;wu&#8221;,-12585
d.add &#8221;xi&#8221;,-12556
d.add &#8221;xia&#8221;,-12359
d.add &#8221;xian&#8221;,-12346
d.add &#8221;xiang&#8221;,-12320
d.add &#8221;xiao&#8221;,-12300
d.add &#8221;xie&#8221;,-12120
d.add &#8221;xin&#8221;,-12099
d.add &#8221;xing&#8221;,-12089
d.add &#8221;xiong&#8221;,-12074
d.add &#8221;xiu&#8221;,-12067
d.add &#8221;xu&#8221;,-12058
d.add &#8221;xuan&#8221;,-12039
d.add &#8221;xue&#8221;,-11867
d.add &#8221;xun&#8221;,-11861
d.add &#8221;ya&#8221;,-11847
d.add &#8221;yan&#8221;,-11831
d.add &#8221;yang&#8221;,-11798
d.add &#8221;yao&#8221;,-11781
d.add &#8221;ye&#8221;,-11604
d.add &#8221;yi&#8221;,-11589
d.add &#8221;yin&#8221;,-11536
d.add &#8221;ying&#8221;,-11358
d.add &#8221;yo&#8221;,-11340
d.add &#8221;yong&#8221;,-11339
d.add &#8221;you&#8221;,-11324
d.add &#8221;yu&#8221;,-11303
d.add &#8221;yuan&#8221;,-11097
d.add &#8221;yue&#8221;,-11077
d.add &#8221;yun&#8221;,-11067
d.add &#8221;za&#8221;,-11055
d.add &#8221;zai&#8221;,-11052
d.add &#8221;zan&#8221;,-11045
d.add &#8221;zang&#8221;,-11041
d.add &#8221;zao&#8221;,-11038
d.add &#8221;ze&#8221;,-11024
d.add &#8221;zei&#8221;,-11020
d.add &#8221;zen&#8221;,-11019
d.add &#8221;zeng&#8221;,-11018
d.add &#8221;zha&#8221;,-11014
d.add &#8221;zhai&#8221;,-10838
d.add &#8221;zhan&#8221;,-10832
d.add &#8221;zhang&#8221;,-10815
d.add &#8221;zhao&#8221;,-10800
d.add &#8221;zhe&#8221;,-10790
d.add &#8221;zhen&#8221;,-10780
d.add &#8221;zheng&#8221;,-10764
d.add &#8221;zhi&#8221;,-10587
d.add &#8221;zhong&#8221;,-10544
d.add &#8221;zhou&#8221;,-10533
d.add &#8221;zhu&#8221;,-10519
d.add &#8221;zhua&#8221;,-10331
d.add &#8221;zhuai&#8221;,-10329
d.add &#8221;zhuan&#8221;,-10328
d.add &#8221;zhuang&#8221;,-10322
d.add &#8221;zhui&#8221;,-10315
d.add &#8221;zhun&#8221;,-10309
d.add &#8221;zhuo&#8221;,-10307
d.add &#8221;zi&#8221;,-10296
d.add &#8221;zong&#8221;,-10281
d.add &#8221;zou&#8221;,-10274
d.add &#8221;zu&#8221;,-10270
d.add &#8221;zuan&#8221;,-10262
d.add &#8221;zui&#8221;,-10260
d.add &#8221;zun&#8221;,-10256
d.add &#8221;zuo&#8221;,-10254
function g(num)
if num&#62;0 and num&#60;160 then
g=chr(num)
else
if num&#60;-20319 or num&#62;-10247 then
g=&#8221;"
else
a=d.Items
b=d.keys
for i=d.count-1 to 0 step -1
if a(i)&#60;=num then exit for
next
g=b(i)
end if
end if
end function
function c(str)
c=&#8221;"
for i=1 to len(str)
c=c&#38;g(asc(mid(str,i,1)))
next
end function
response.write c(request(&#8220;hz&#8221;))
%&#62;
&#60;form method=post&#62;
请在此处输入中文：&#60;input name=hz&#62;
&#60;/form&#62;

]]></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)
f1.Write (&#8220;This is a test.My Name is cnbruce.&#8221;)
f1.Close
Set f2 = fso.GetFile(whichfile)
f2.Copy &#8221;D:\&#8221;
%&#62;
&#60;a href=&#8221;D:\&#8221;&#62;查看下有没有&#60;/a&#62;




和本ASP页面同在目录下的cnbruce.txt文件依然存在。
四，file.Delete
很显然，就是直接删除文件了。
4，delfile.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;d:\&#8221;
Set f3 = fso.GetFile(&#8220;d:\cnbruce.txt&#8221;)
f3.delete 
%&#62;
&#60;a href=&#8221;d:\&#8221;&#62;查看下是没有该文件的&#60;/a&#62;





]]></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
%&#62;
故事如下：
&#60;%
Set fso=Server.CreateObject(&#8220;Scripting.FileSystemObject&#8221;)
textfile1=Server.MapPath(&#8220;story.txt&#8221;)
set cnrs=fso.OpenTextFile(textfile1,1)
while not cnrs.AtEndOfStream
  Response.Write &#8221;&#38;nbsp;&#8221; &#38; cnrs.ReadLine
wend
cnrs.close
%&#62;
&#60;hr&#62;
&#60;form method=&#8221;post&#8221; action=&#8221;story.asp&#8221;&#62;
请输入这个故事的新行:&#60;input name=&#8221;NextLine&#8221; type=&#8221;text&#8221; size=&#8221;70&#8243;&#62;
&#60;input type=&#8221;submit&#8221; value=&#8221;提交&#8221;&#62;
&#60;/form&#62;




整个就是一很简单的读取信息和加入信息的混合利用，相信有了前面的基础看懂应该不成问题。当然还缺少个story.txt文件，里面写好故事开头就可以了。

再下面，继续来，该侧重点主要就是练习一些函数的使用技巧了。
1，instr函数：返回某字符串在另一字符串中第一次出现的位置。
比如现在查找字母“A”在字符串“A110B121C119D1861”中第一次出现的位置，则可以
&#60;script language=vbs&#62;my_string = &#8220;A110B121C119D1861&#8243;a_num = instr(my_string,&#8221;A&#8221;)alert(a_num)&#60;/script&#62;
 [Ctrl+A 全部选择 提示：你可先修改部分代码，再按运行]
同样字母“B”的位置也就能确定。现在就来最关键的：提前字母“A”和“B”中间的值“110”。
还记得mid函数吗？mid函数的主要作用是：从字符串中返回指定数目的字符。
比如现在的“110”则应该是从字符串的第2位取得3个单位的值。
&#60;script language=vbs&#62;my_string = &#8220;A110B121C119D1861&#8243;a_value = mid(my_string,2,3)alert(a_value)&#60;/script&#62;
 [Ctrl+A 全部选择 提示：你可先修改部分代码，再按运行]
但设想一下：如果不是“110”，而是“1100”，那是不是要提取4位……这样就显出程序的不够完美。
所以继续思考：所提取的值，永远是在字母“A”后面的，且值也永远是在字母“A”和“B”之间的，那么只要分别提取出“A”、“B”的位置，则中间数值的起始位应是字母“A”位+1，中间数值的长度应是字母“B”位-字母“A”位-1
那么现在就可以让程序完美起来：
&#60;script language=vbs&#62;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)&#60;/script&#62;
 [Ctrl+A 全部选择 提示：你可先修改部分代码，再按运行]
OK，那么现在你也就完全可以把字母“B”、“C”、“D”后面的值一一提取了。
当然需要注意的就是“D”后面有几位怎么取呢？采用字符串总长度-字母D所在位置数就可以了。
&#60;script language=vbs&#62;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)&#60;/script&#62;
 [Ctrl+A 全部选择 提示：你可先修改部分代码，再按运行]
用到现在，你也许确实学到了不少，但也许会提出疑问：这个放在FSO文件操作里有什么作用呢？
那下面才是我们的正题：用FSO进行简单的文本投票。
投票页面首要的就是显示各类项目的投票数，并相应赋于某个变量。然后判断本次投票的选相，相对应地将投票数值加1，完毕后再将所有值继续写入文本。
1，一个HTML表单页website.html
以做投票点击的平台。
&#60;form action=&#8221;result.asp&#8221; method=&#8221;post&#8221;&#62;&#60;input [...]]]></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
&#8216;将新的数值添加写入到文本，最后关闭所有连接释放资源
set creatfile=fso.createtextfile(whichfile)
creatfile.writeLine(visitors)
creatfile.close
set fso=nothing
%&#62; 




那根据这个可以继续地扩展内容：比如让记数用数字图片显示。当然前提就是你需要0-9的10张记数图片，并将此图片放于img文件夹中。
下为一增强的txtcount.asp内容代码
 




&#60;%
whichfile=server.mappath(&#8220;counter.txt&#8221;)set fso=createobject(&#8220;Scripting.FileSystemObject&#8221;)
set openfile=fso.opentextfile(whichfile,1)
visitors=openfile.readline
openfile.close
CountLen=len(visitors)
response.write &#8221;您是本页的第&#8221;
for i=1 to 6-countLen        &#8217;表示最大值999999
 response.write &#8221;&#60;img src=img/0.gif&#62;&#60;/img&#62;&#8221;
next 
for i=1 to countlen
 response.write &#8221;&#60;img src=img/&#8221; &#38; mid(visitors,i,1) &#38; &#8221;.gif&#62;&#60;/img&#62;&#8221;
next
response.write &#8221;位访客&#8221;
visitors=visitors+1
set creatfile=fso.createtextfile(whichfile)
creatfile.writeLine(visitors)
creatfile.close
set fso=nothing
%&#62;
 




本程序中采用的是mid函数，该函数的作用是返回某字符串中从第几位字符开始的几个字符。格式即为：Mid(string,start,length)
&#60;script language=vbs&#62;cn_string= &#8220;cnbruce love cnrose&#8221;cn_start = 9cn_length = 4alert (mid(cn_string,cn_start,cn_length))&#60;/script&#62;
 [Ctrl+A 全部选择 提示：你可先修改部分代码，再按运行]


]]></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>数据库用convert进行日期格式转换</title>
		<link>http://blog.1xi.net/asp/shujuku-riqi-geshi-zhuanhuan</link>
		<comments>http://blog.1xi.net/asp/shujuku-riqi-geshi-zhuanhuan#comments</comments>
		<pubDate>Sat, 10 Jan 2009 06:57:54 +0000</pubDate>
		<dc:creator>FDS</dc:creator>
				<category><![CDATA[ASP]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[数据库]]></category>

		<guid isPermaLink="false">http://blog.1xi.net/asp/shujuku-riqi-geshi-zhuanhuan</guid>
		<description><![CDATA[如何在数据库中转换各种日期格式呢？只要在convert中指定日期格式的代号就够了,非常简单方便
如:
select convert(char(20),getdate(),101)
select emp_id,convert(char(20),hire_dt,101) from employee
以下是格式代号提供出来
日期格式          代号
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211; &#8212;&#8212;&#8212;&#8211;
04/05/2000          101
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211; &#8212;&#8212;&#8212;&#8211;
2000.04.05          102
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211; &#8212;&#8212;&#8212;&#8211;
05/04/2000          103
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211; &#8212;&#8212;&#8212;&#8211;
05.04.2000          104
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211; &#8212;&#8212;&#8212;&#8211;
05-04-2000          105
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211; &#8212;&#8212;&#8212;&#8211;
05 Apr 2000         106
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211; &#8212;&#8212;&#8212;&#8211;
Apr 05, 2000         107
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211; &#8212;&#8212;&#8212;&#8211;
11:33:24           108
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211; &#8212;&#8212;&#8212;&#8211;
Apr 5 2000 11:33:24     109
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211; &#8212;&#8212;&#8212;&#8211;
04-05-2000          110
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211; &#8212;&#8212;&#8212;&#8211;
2000/04/05          111
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211; &#8212;&#8212;&#8212;&#8211;
20000405           112
]]></description>
			<content:encoded><![CDATA[<p>如何在数据库中转换各种日期格式呢？只要在convert中指定日期格式的代号就够了,非常简单方便</p>
<p>如:<br />
select convert(char(20),getdate(),101)<br />
select emp_id,convert(char(20),hire_dt,101) from employee</p>
<p>以下是格式代号提供出来</p>
<blockquote><p>日期格式          代号<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211; &#8212;&#8212;&#8212;&#8211;<br />
04/05/2000          101</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211; &#8212;&#8212;&#8212;&#8211;<br />
2000.04.05          102</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211; &#8212;&#8212;&#8212;&#8211;<br />
05/04/2000          103</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211; &#8212;&#8212;&#8212;&#8211;<br />
05.04.2000          104</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211; &#8212;&#8212;&#8212;&#8211;<br />
05-04-2000          105</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211; &#8212;&#8212;&#8212;&#8211;<br />
05 Apr 2000         106</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211; &#8212;&#8212;&#8212;&#8211;<br />
Apr 05, 2000         107</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211; &#8212;&#8212;&#8212;&#8211;<br />
11:33:24           108</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211; &#8212;&#8212;&#8212;&#8211;<br />
Apr 5 2000 11:33:24     109</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211; &#8212;&#8212;&#8212;&#8211;<br />
04-05-2000          110</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211; &#8212;&#8212;&#8212;&#8211;<br />
2000/04/05          111</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211; &#8212;&#8212;&#8212;&#8211;<br />
20000405           112</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://blog.1xi.net/asp/shujuku-riqi-geshi-zhuanhuan/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>关于ASP缓存技术</title>
		<link>http://blog.1xi.net/asp/asp-huancun-jishu</link>
		<comments>http://blog.1xi.net/asp/asp-huancun-jishu#comments</comments>
		<pubDate>Sat, 10 Jan 2009 06:50:57 +0000</pubDate>
		<dc:creator>FDS</dc:creator>
				<category><![CDATA[ASP]]></category>

		<guid isPermaLink="false">http://blog.1xi.net/asp/asp-huancun-jishu</guid>
		<description><![CDATA[使用ASP中的缓存技术可以很大程度上提高你的网站性能，其实这些实现方法是非常的简单，它将说明如何在服务器上的缓存是如何工作以及你如何使用一种被称为断开连接的ADO连接技术。
在介绍这些技术之前先说明一下到底什么是ASP的缓存技术。
所谓缓存其实就是在内存中开辟一个用来保存数据的空间，使用缓存你就不用频繁的访问你保存在硬盘上的数据了，灵活的使用缓存你就免去了心疼的看着可怜的硬盘饱受读数据时的折磨了。当你一旦执行了一个查询动作，并且将查询结果放入缓存中后，你就可以很迅速的重复访问这些数据了。而如果你不把数据放入缓存的话，当你再次执行这个查询时，服务器会将进程耗费在从数据库中获取并排序上了。
当数据保存在缓存中时，再次查询时耗费的时间主要是在显示数据的时间上了。也就是说，我们不应该把经常需要改变的数据放到服务端的缓存中，我们应该把改变少，但是又需要经常访问的数据放到缓存中。
现在我们先讨论ASP在服务端使用缓存的技术，过会再讨论ASP如何在客户端使用
缓存的技术。
当你有大量的数据（静态的，就是说变动比较少的）需要显示给客户端时，你就可以考虑使用服务端的缓存技术了。这种技术尤其适用于那些显示风格一致性比较强的网站（呵呵，对于非主流的网站可不好用的说。）
其实实现方法特别的简单，大家只要看看下面这个简单的例子就明白了。
这是一个用来显示书籍分类的例子程序
DisplayBooks.ASP文件：
&#60; %@ LANGUAGE=JavaScript % &#62;
&#60; html &#62;
&#60; body &#62;
&#60; form method=post &#62;
书籍分类； &#60; %= getBooksListBox() % &#62;
&#60; p&#62;
&#60; input type=submit &#62;
&#60; %
function getBooksListBox()
{
BooksListBox = Application(&#8220;BooksListBox&#8221;)
if (BooksListBox != null) return BooksListBox;
crlf = String.fromCharCode(13, 10)
BooksListBox = &#8220;&#60; select name=Books&#62;&#8221; + crlf;
SQL = &#8220;SELECT * FROM Books ORDER BY Name&#8221;;
cnnBooks = Server.CreateObject(&#8220;ADODB.Connection&#8221;);
cnnBooks.Open(&#8220;Books&#8221;, &#8220;Admin&#8221;,&#8221;");
rstBooks = cnnBooks.Execute(SQL);
fldBookName = rstBooks(&#8220;BookName&#8221;);
while (!rstBooks.EOF){
BooksListBox [...]]]></description>
			<content:encoded><![CDATA[<p>使用ASP中的缓存技术可以很大程度上提高你的网站性能，其实这些实现方法是非常的简单，它将说明如何在服务器上的缓存是如何工作以及你如何使用一种被称为断开连接的ADO连接技术。<br />
在介绍这些技术之前先说明一下到底什么是ASP的缓存技术。<br />
所谓缓存其实就是在内存中开辟一个用来保存数据的空间，使用缓存你就不用频繁的访问你保存在硬盘上的数据了，灵活的使用缓存你就免去了心疼的看着可怜的硬盘饱受读数据时的折磨了。当你一旦执行了一个查询动作，并且将查询结果放入缓存中后，你就可以很迅速的重复访问这些数据了。而如果你不把数据放入缓存的话，当你再次执行这个查询时，服务器会将进程耗费在从数据库中获取并排序上了。<br />
当数据保存在缓存中时，再次查询时耗费的时间主要是在显示数据的时间上了。也就是说，我们不应该把经常需要改变的数据放到服务端的缓存中，我们应该把改变少，但是又需要经常访问的数据放到缓存中。</p>
<p>现在我们先讨论ASP在服务端使用缓存的技术，过会再讨论ASP如何在客户端使用<br />
缓存的技术。<br />
当你有大量的数据（静态的，就是说变动比较少的）需要显示给客户端时，你就可以考虑使用服务端的缓存技术了。这种技术尤其适用于那些显示风格一致性比较强的网站（呵呵，对于非主流的网站可不好用的说。）<br />
其实实现方法特别的简单，大家只要看看下面这个简单的例子就明白了。<br />
这是一个用来显示书籍分类的例子程序<br />
DisplayBooks.ASP文件：</p>
<p>&lt; %@ LANGUAGE=JavaScript % &gt;<br />
&lt; html &gt;<br />
&lt; body &gt;<br />
&lt; form method=post &gt;<br />
书籍分类； &lt; %= getBooksListBox() % &gt;<br />
&lt; p&gt;<br />
&lt; input type=submit &gt;</p>
<p>&lt; %<br />
function getBooksListBox()<br />
{<br />
BooksListBox = Application(&#8220;BooksListBox&#8221;)<br />
if (BooksListBox != null) return BooksListBox;<br />
crlf = String.fromCharCode(13, 10)<br />
BooksListBox = &#8220;&lt; select name=Books&gt;&#8221; + crlf;<br />
SQL = &#8220;SELECT * FROM Books ORDER BY Name&#8221;;<br />
cnnBooks = Server.CreateObject(&#8220;ADODB.Connection&#8221;);<br />
cnnBooks.Open(&#8220;Books&#8221;, &#8220;Admin&#8221;,&#8221;");<br />
rstBooks = cnnBooks.Execute(SQL);<br />
fldBookName = rstBooks(&#8220;BookName&#8221;);<br />
while (!rstBooks.EOF){<br />
BooksListBox = BooksListBox + &#8221; &lt; option&gt;&#8221; +<br />
fldBookName + &#8220;&#8221; + crlf;<br />
rstBooks.MoveNext();<br />
}<br />
BooksListBox = BooksListBox + &#8220;&#8221;<br />
Application(&#8220;BooksListBox&#8221;) = BooksListBox<br />
return BooksListBox;<br />
}<br />
% &gt;<br />
很简单把，其实就是用了很简单的Application技术，而且就一句话的不同：<br />
Application(&#8220;BooksListBox&#8221;) = BooksListBox<br />
你可以验证一下你就会发现服务器上的请求数量会降低不少的。这种情况尤其适合与那些更新不是很频繁的网站内容，例如你一天（或则很长时间）只更新一次。</p>
<p>下面再讨论一种客户端的缓存技术这种技术也叫断开连接的ADO连接技术（翻译水平太次，听上去怎么这么别扭）。这种技术主要使用在用来保存用户个人信息，例如用户的密码，代号等等上面。它主要使用了ADO的一些属性。同时也回答了一些网友曾经提到过的能否在Applocation中使用ADO对象的问题。解释不清楚，下面让代码来发言：<br />
文件GLOBAL.ASA：<br />
&lt; !&#8211;METADATA TYPE=&#8221;TypeLib&#8221; FILE=&#8221;C:\Program Files\Common Files\system\ado\msado15.dll&#8221;&#8211; &gt;<br />
&lt; SCRIPT LANGUAGE=VBScript RUNAT=&#8221;Server&#8221; &gt;<br />
Sub Application_OnStart<br />
SQL = &#8220;SELECT UserName, Password FROM UserInfo&#8221;<br />
cnnUsers = &#8220;DSN=User&#8221;<br />
Set rsUsers = Server.CreateObject(&#8220;ADODB.Recordset&#8221;)<br />
&#8216;注意下面这两句话，就是用来实现那个叫可用的断开连接的ADO技术<br />
rsCustomers.CursorLocation = adUseClient<br />
rsCustomers.Open SQL, cnnAdvWorks, adOpenStatic, AdLockReadOnly<br />
&#8216; 断开RecordSet的和数据库的连接<br />
rsCustomers.ActiveConnection = Nothing<br />
Set Application(&#8220;rsCustomers&#8221;) = rsCustomers<br />
End Sub</p>
<p>文件Users.ASP<br />
&lt; %<br />
&#8216;Clone方法使得每个用户拥有自己的一个RecordSet集合<br />
Set yourUsers = Application(&#8220;rsUsers&#8221;).Clone<br />
Set UserName = yourUsers(&#8220;UserName&#8221;)<br />
Set Password = yourUsers(&#8220;Password&#8221;)<br />
Do Until yourUsers.EOF<br />
% &gt;<br />
用户姓名：&lt; %= UserName % &gt; 用户密码：&lt; %= Password % &gt;<br />
&lt; %<br />
yourUsers.MoveNext<br />
Loop<br />
% &gt;</p>
<p>（出处：热点网络）</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.1xi.net/asp/asp-huancun-jishu/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>用CDONTS发送邮件的ASP函数</title>
		<link>http://blog.1xi.net/asp/cdonts-fasong-youjian</link>
		<comments>http://blog.1xi.net/asp/cdonts-fasong-youjian#comments</comments>
		<pubDate>Sat, 10 Jan 2009 06:39:13 +0000</pubDate>
		<dc:creator>FDS</dc:creator>
				<category><![CDATA[ASP]]></category>

		<guid isPermaLink="false">http://blog.1xi.net/asp/cdonts-fasong-youjian</guid>
		<description><![CDATA[一个用CDONTS发送邮件的ASP函数，看看实现方法。
&#60;%
&#8216;发送普通邮件
SendMail &#8220;admin@ny.com&#8221;, &#8220;iamchn@263.net&#8221;, &#8220;Normal Mail!&#8221;, &#8220;Please check the attatchment!&#8221;, 2, 0, &#8220;C:\Love.txt&#8221;
&#8216;发送HTML邮件
Dim m_fso, m_tf
Dim m_strHTML
Set m_fso = Server.CreateObject(&#8220;SCRIPTING.FILESYSTEMOBJECT&#8221;)
Set m_tf = m_fso.OpenTextFile(&#8220;C:\Mail.htm&#8221;, 1)
m_strHTML = m_tf.ReadAll
&#8216;Write m_strHTML
Set m_tf = Nothing
Set m_fso = Nothing
SendMail &#8220;admin@ny.com&#8221;, &#8220;iamchn@263.net&#8221;, &#8220;HTML Mail!&#8221;, m_strHTML, 2, 1, Null
&#8216;参数说明
&#8217;strFrom : 发件人Email
&#8217;strTo : 收件人Email
&#8217;strSubject : 信件主题
&#8217;strBody : 信件正文
&#8216;lngImportance : 信件重要性
&#8216; : 0 &#8211; 低重要性
&#8216; : 0 [...]]]></description>
			<content:encoded><![CDATA[<p>一个用CDONTS发送邮件的ASP函数，看看实现方法。<br />
&lt;%<br />
&#8216;发送普通邮件<br />
SendMail &#8220;admin@ny.com&#8221;, &#8220;iamchn@263.net&#8221;, &#8220;Normal Mail!&#8221;, &#8220;Please check the attatchment!&#8221;, 2, 0, &#8220;C:\Love.txt&#8221;</p>
<p>&#8216;发送HTML邮件<br />
Dim m_fso, m_tf<br />
Dim m_strHTML</p>
<p>Set m_fso = Server.CreateObject(&#8220;SCRIPTING.FILESYSTEMOBJECT&#8221;)<br />
Set m_tf = m_fso.OpenTextFile(&#8220;C:\Mail.htm&#8221;, 1)<br />
m_strHTML = m_tf.ReadAll</p>
<p>&#8216;Write m_strHTML<br />
Set m_tf = Nothing<br />
Set m_fso = Nothing</p>
<p>SendMail &#8220;admin@ny.com&#8221;, &#8220;iamchn@263.net&#8221;, &#8220;HTML Mail!&#8221;, m_strHTML, 2, 1, Null</p>
<p>&#8216;参数说明<br />
&#8217;strFrom : 发件人Email<br />
&#8217;strTo : 收件人Email<br />
&#8217;strSubject : 信件主题<br />
&#8217;strBody : 信件正文<br />
&#8216;lngImportance : 信件重要性<br />
&#8216; : 0 &#8211; 低重要性<br />
&#8216; : 0 &#8211; 中等重要性（默认）<br />
&#8216; : 0 &#8211; 高重要性<br />
&#8216;lngAType : 信件格式<br />
&#8216; : 为1时将邮件正文作为HTML（此时可以发送HTML邮件）<br />
&#8217;strAttach : 附件的路径<br />
Sub SendMail(strFrom, strTo, strSubject, strBody, lngImportance, lngAType, strAttach)<br />
Dim objMail</p>
<p>Set objMail = Server.CreateObject(&#8220;CDONTS.NEWMAIL&#8221;)<br />
With objMail</p>
<p>.From = strFrom<br />
.To = strTo<br />
.Subject = strSubject<br />
.Body = strBody<br />
.Importance = lngImportance</p>
<p>If lngAType = 1 Then<br />
.BodyFormat = 0<br />
.MailFormat = 0<br />
End If</p>
<p>If IsEmpty(strAttach) = False And IsNull(strAttach) = False Then<br />
.AttachFile strAttach<br />
End If</p>
<p>.Send<br />
End With<br />
Set objMail = Nothing<br />
End Sub<br />
%&gt;</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.1xi.net/asp/cdonts-fasong-youjian/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ASP的CACHE技术</title>
		<link>http://blog.1xi.net/asp/asp-cache</link>
		<comments>http://blog.1xi.net/asp/asp-cache#comments</comments>
		<pubDate>Mon, 05 Jan 2009 12:49:17 +0000</pubDate>
		<dc:creator>FDS</dc:creator>
				<category><![CDATA[ASP]]></category>

		<guid isPermaLink="false">http://blog.1xi.net/asp/asp-cache</guid>
		<description><![CDATA[ASP中最好的办法是用编程实现定时刷新Cache，也就是说给Application中储存的设一个过期时间。当然，在ASP中Application对象没有这样一个ExpireTime属性。这需要用程序实现。
ASP：default.asp 



&#60;%@Language=VBScript%&#62;
&#60;%Option  Explicit%&#62;
&#60;%Response.Buffer=True%&#62;
&#60;!&#8211;#include file = &#8220;conn.asp&#8221;&#8211;&#62;
&#60;!&#8211;#include file = &#8220;GetCache.asp&#8221;&#8211;&#62;
&#60;HTML&#62;
    &#60;HEAD&#62;
        &#60;TITLE&#62;ASP Cache演示&#60;/TITLE&#62;
        &#60;META HTTP-EQUIV=&#8220;Content-Type&#8221; CONTENT=&#8220;text/html; charset=gb2312&#8243;&#62;
    &#60;/HEAD&#62;
    &#60;BODY&#62;
    &#60;h4&#62;每隔10秒刷新Cache：&#60;/h4&#62;
    &#60;%
    response.Flush
    GetHTMLStream
    response.Write
    HTMLStream
    %&#62;
    &#60;/body&#62;
&#60;/html&#62; 



 
ASP：getcache.asp 



&#60;%
Const CACHE_DEFAULT_INTERVAL = 30 &#8216;每隔30秒刷新一次cache 
Dim HTMLStream
Dim IsExpires
IsExpires = CacheExpires
Function CacheExpires
    Dim strLastUpdate
    Dim result strLastUpdate = Application(&#8220;LastUpdate&#8221;)
    If (strLastUpdate = &#8220;&#8221;) Or (CACHE_DEFAULT_INTERVAL &#60; DateDiff(&#8220;s&#8221;, strLastUpdate, [...]]]></description>
			<content:encoded><![CDATA[<p>ASP中最好的办法是用编程实现定时刷新Cache，也就是说给Application中储存的设一个过期时间。当然，在ASP中Application对象没有这样一个ExpireTime属性。这需要用程序实现。</p>
<h3><span class="ltittle">ASP：default.asp </span></p>
<table class="code" border="0" cellspacing="1" cellpadding="5" bgcolor="#e0e0e0">
<tbody>
<tr>
<td><span class="anred">&lt;%@Language=VBScript%&gt;<br />
&lt;%</span><span class="blue">Option  Explicit</span><span class="anred">%&gt;<br />
&lt;%Response.Buffer=</span><span class="blue">True</span><span class="anred">%&gt;</span><br />
<span class="green">&lt;!&#8211;#include file = &#8220;conn.asp&#8221;&#8211;&gt;<br />
&lt;!&#8211;#include file = &#8220;GetCache.asp&#8221;&#8211;&gt;</span><br />
<span class="blue">&lt;HTML&gt;<br />
    &lt;HEAD&gt;</span><br />
     <span class="blue">   &lt;TITLE&gt;</span>ASP Cache演示<span class="blue">&lt;/TITLE&gt;<br />
        &lt;META </span><span class="red">HTTP-EQUIV</span><span class="blue">=</span><span class="liangfen">&#8220;Content-Type&#8221;</span> <span class="red">CONTENT</span><span class="blue">=</span><span class="liangfen">&#8220;text/html; charset=gb2312&#8243;</span><span class="blue">&gt;<br />
    &lt;/HEAD&gt;<br />
    &lt;BODY&gt;</span><br />
  <span class="blue">  &lt;h4&gt;</span>每隔10秒刷新Cache<span class="common">：</span><span class="blue">&lt;/h4&gt;</span><br />
<span class="anred">    &lt;%<br />
    response.Flush<br />
    GetHTMLStream<br />
    response.Write<br />
    HTMLStream<br />
    %&gt;</span><br />
<span class="blue">    &lt;/body&gt;<br />
&lt;/html&gt; </span></td>
</tr>
</tbody>
</table>
<p><span class="ltittle"> </span></h3>
<p><span class="ltittle"><strong>ASP：getcache.asp</strong> </span></p>
<table id="Table1" class="code" border="0" cellspacing="1" cellpadding="5" bgcolor="#e0e0e0">
<tbody>
<tr>
<td><span class="anred">&lt;%<br />
</span><span class="blue">Const</span><span class="anred"> CACHE_DEFAULT_INTERVAL = 30</span><span class="green"> &#8216;每隔30秒刷新一次cache </span><span class="anred"><br />
</span><span class="blue">Dim </span><span class="anred">HTMLStream<br />
</span><span class="blue">Dim </span><span class="anred">IsExpires<br />
IsExpires = CacheExpires<br />
</span><span class="blue">Function </span><span class="anred">CacheExpires<br />
    </span><span class="blue">Dim </span><span class="anred">strLastUpdate<br />
</span><span class="blue">    Dim</span><span class="anred"> result strLastUpdate = Application(</span><span class="liangfen">&#8220;LastUpdate&#8221;</span><span class="anred">)<br />
   </span><span class="blue"> If</span><span class="anred"> (strLastUpdate =</span> <span class="liangfen">&#8220;&#8221;</span><span class="anred">) </span><span class="blue">Or</span><span class="anred"> (CACHE_DEFAULT_INTERVAL &lt; </span><span class="red">DateDiff</span><span class="anred">(</span><span class="liangfen">&#8220;s&#8221;</span><span class="anred">, strLastUpdate, </span><span class="red">Now</span><span class="anred">)) </span><span class="blue">Then </span><span class="anred"><br />
        result = </span><span class="blue">true </span><span class="anred"><br />
        SetLastUpdateTime<br />
</span><span class="blue">    Else </span><span class="anred"><br />
        result = </span><span class="blue">false </span><span class="anred"><br />
</span><span class="blue">    End If </span><span class="anred"><br />
    CacheExpires = result<br />
</span><span class="blue">End Function </span><span class="anred"></p>
<p></span><span class="blue">Sub </span><span class="anred">SetLastUpdateTime<br />
    Application.Lock<br />
    Application(</span><span class="liangfen">&#8220;LastUpdate&#8221;</span><span class="anred">) =</span><span class="red"> CStr</span><span class="anred">(</span><span class="red">now</span><span class="anred">())<br />
    Application.UnLock<br />
</span><span class="blue">End Sub </span><span class="anred"></p>
<p></span><span class="blue">Sub</span><span class="anred"> GetHTMLStream<br />
    If IsExpires Then<br />
        UpdateHTMLStream<br />
    End If<br />
    HTMLStream=Application(</span><span class="liangfen">&#8220;CACHE_HTMLStream&#8221;</span><span class="anred">)<br />
</span><span class="blue">End Sub</p>
<p>Sub</span><span class="anred"> UpdateHTMLStream<br />
   </span><span class="blue"> dim</span><span class="anred"> d<br />
    d = FetchHTMLStream<br />
    Application.Lock<br />
    Application(</span><span class="liangfen">&#8220;CACHE_HTMLStream&#8221;</span><span class="anred">) = d<br />
    Application.UnLock<br />
</span><span class="blue">End Sub </span><span class="anred"><br />
</span><span class="blue"><br />
Function</span><span class="anred"> FetchHTMLStream <br />
  </span><span class="blue">  Dim</span><span class="anred"> rs ,strSQL, strHTML </span><br />
<span class="blue">    Set</span><span class="anred"> rs =</span><span class="red"> CreateObject</span><span class="anred">(</span><span class="liangfen">&#8220;ADODB.Recordset&#8221;</span><span class="anred">) </span><br />
<span class="anred">    strSQL = </span><span class="liangfen">&#8220;select categoryID , categoryname from categories&#8221; </span><br />
<span class="anred">    rs.Open strSQL, strConn,adOpenForwardOnly,adLockReadOnly </span><br />
<span class="anred">    strHTML = strHTML &amp;</span><span class="liangfen"> &#8220;&lt;select name=&#8221;"slt_search&#8221;"&gt;&#8221; </span><br />
<span class="blue">    while</span> <span class="anred">(</span><span class="blue">not</span> <span class="anred">rs.EOF) </span><br />
<span class="anred">        strHTML = strHTML &amp; </span><span class="liangfen">&#8220;&lt;option&gt;&#8221; </span><span class="anred"><br />
        strHTML = strHTML &amp; rs.Fields</span><span class="liangfen">(&#8220;categoryname&#8221;) </span><span class="anred"><br />
        strHTML = strHTML &amp;</span> <span class="liangfen">&#8220;&lt;/option&gt;&#8221;</span><span class="anred"> rs.MoveNext </span><br />
  <span class="blue">  wend </span><br />
<span class="anred">    strHTML = strHTML &amp; </span><span class="liangfen">&#8220;&lt;/select&gt;&#8221; </span><span class="anred"><br />
    rs.Close </span><br />
<span class="blue">    Set </span><span class="anred">rs =</span><span class="blue"> Nothing </span><br />
  <span class="anred">  FetchHTMLStream = strHTML </span><br />
<span class="blue">End Function </span><br />
<span class="anred">%&gt; </span></td>
</tr>
</tbody>
</table>
<p><span class="ltittle"><strong>ASP：conn.asp</strong> </span></p>
<table id="Table2" class="code" border="0" cellspacing="1" cellpadding="5" bgcolor="#e0e0e0">
<tbody>
<tr>
<td><span class="green">&lt;!&#8211;METADATA NAME=&#8221;Microsoft ActiveX Data Objects 2.5 Library&#8221; TYPE=&#8221;TypeLib&#8221; UUID=&#8221;{00000205-0000-0010-8000-00AA006D2EA4}&#8221;&#8211;&gt; </span><br />
<span class="anred">&lt;%<br />
    dim strConn<br />
    strConn =</span> <span class="liangfen">&#8220;Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=Northwind&#8221;<br />
%&gt; </span></td>
</tr>
</tbody>
</table>
]]></content:encoded>
			<wfw:commentRss>http://blog.1xi.net/asp/asp-cache/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ASP小技巧锦集</title>
		<link>http://blog.1xi.net/asp/asp-jiqiao</link>
		<comments>http://blog.1xi.net/asp/asp-jiqiao#comments</comments>
		<pubDate>Mon, 05 Jan 2009 12:38:30 +0000</pubDate>
		<dc:creator>FDS</dc:creator>
				<category><![CDATA[ASP]]></category>

		<guid isPermaLink="false">http://blog.1xi.net/asp/asp-jiqiao</guid>
		<description><![CDATA[严格控制Session
可以将不需要Session的内容（比如帮助画面，访问者区域，等等）移动到关闭Session的独立ASP应用程序中。在基础页面上，可以给ASP一个指示，让它不需要使用Session。将下面的代码直接加入到ASP页面的头部：
  
&#60;%@EnableSessionState=False%&#62;
在Web服务器上缓存经常使用的数据
典型的情况是：ASP页面从后台存储中取回数据，然后以超文本标记语言（HTML）的形式形成结果。不管数据库的速度如何，从内存中取回数据要比从后台存储设备中快得多。从本地硬盘读取数据通常也非常快。所以，提高性能可以通过缓存服务器上的数据来实现，无论是将数据缓存在内存中，或者本地硬盘中。 
缓存是经典的“空间换时间”的折中方式。如果缓存得恰当，就可以看到显著的性能提升。为了让缓存有效，必须保证缓存数据是经常要重用的，而且也是计算起来繁琐的。装满陈旧数据的缓存是对内存的浪费。
不经常改变的数据是缓存的较好对象，因为不需要随时考虑这些数据更新后的同步操作。组合框、参考表格、DHTML代码、扩展标记语言串、菜单以及站点配置变量（包括数据源名字，Internet协议地址IP以及Web路径）都是很好的缓存对象。注意：要缓存数据表达式而不是数据本身。如果一个ASP页面经常变化并且很费力去缓存（比如整个产品目录），就要考虑预产生HTML，而不是每次发生请求时再描述它。
在Application或Session对象中缓存经常使用的数据
ASP中的Application和Session对象是在内存中缓存数据的便利容器。你可以将数据赋值给Application和Session对象，这些数据在HTTP调用期间将一直保持在内存中。Session中的数据是为每一个用户服务的，Application中的数据是所有用户共享的。
何时需要在Application和Session中装入数据？通常，当应用程序启动或者会话开始时，数据就被装入了。为了在这时装入数据，在Application OnStart()或者Session OnStart()中分别添加适当的代码。这些函数位于文件Global.asa中，如果原来不存在，就添加上。也可以在数据首次需要的时候调入，在ASP页面中添加代码，检查数据是否存在，如果没有发现，就调入它。这里有一个例子，它代表了被称为“lazy evalution”的经典性能处理技术：直到需要，再去计算。 
拷贝经常使用的数据到脚本变量中
在ASP中存取COM对象时，应该拷贝经常使用的对象数据到脚本变量中，这样就减少了对COM对象的方法调用。这些调用要比存取脚本变量相对来说费时费力。当存取Collection和Dictionary对象时，使用这项技巧也减少了昂贵的查找操作。
通常，如果要不止一次地存取对象数据，就应将数据放入脚本变量中，对象数据主要也就是Request变量（表单和查询字符串变量）。比如，站点要传递一个叫做UserID的查询字符串变量，假设它将在一个特殊页面被引用12次，那么不需要调用Request(&#8220;UserID&#8221;)12次，只要在ASP页面的头部分配给UserID一个变量，然后在页面中使用它，这样做就节省了11次COM方法的调用。
在任何可能时使用Server.Transfer，而不要用Response.Redirect
Response.Redirect告诉浏览器请求另一个不同的页面，这常常用于引导用户到登录页面或者出错处理页面。由于重定向强迫了一个新页面请求，结果是浏览器必须要与Web服务器循环2次，并且Web服务器必须处理一个额外的请求。Server.Transfer执行在同一服务器上的页面传输，这将避免额外的浏览器－Web服务器的数据循环，形成良好的系统性能，对于用户也有较好的响应时间。当然Server.Transfer只支持相对路径（即站内使用）。

]]></description>
			<content:encoded><![CDATA[<p><span id="ArticleContent1_ArticleContent1_lblContent"><span style="font-size: x-small;"><strong>严格控制Session</p>
<p></strong>可以将不需要Session的内容（比如帮助画面，访问者区域，等等）移动到关闭Session的独立ASP应用程序中。在基础页面上，可以给ASP一个指示，让它不需要使用Session。将下面的代码直接加入到ASP页面的头部：<br />
  <br />
&lt;%@EnableSessionState=False%&gt;</p>
<p><strong>在Web服务器上缓存经常使用的数据</strong></p>
<p>典型的情况是：ASP页面从后台存储中取回数据，然后以超文本标记语言（HTML）的形式形成结果。不管数据库的速度如何，从内存中取回数据要比从后台存储设备中快得多。从本地硬盘读取数据通常也非常快。所以，提高性能可以通过缓存服务器上的数据来实现，无论是将数据缓存在内存中，或者本地硬盘中。 </p>
<p>缓存是经典的“空间换时间”的折中方式。如果缓存得恰当，就可以看到显著的性能提升。为了让缓存有效，必须保证缓存数据是经常要重用的，而且也是计算起来繁琐的。装满陈旧数据的缓存是对内存的浪费。</p>
<p>不经常改变的数据是缓存的较好对象，因为不需要随时考虑这些数据更新后的同步操作。组合框、参考表格、DHTML代码、扩展标记语言串、菜单以及站点配置变量（包括数据源名字，Internet协议地址IP以及Web路径）都是很好的缓存对象。注意：要缓存数据表达式而不是数据本身。如果一个ASP页面经常变化并且很费力去缓存（比如整个产品目录），就要考虑预产生HTML，而不是每次发生请求时再描述它。</p>
<p><strong>在Application或Session对象中缓存经常使用的数据</strong></p>
<p>ASP中的Application和Session对象是在内存中缓存数据的便利容器。你可以将数据赋值给Application和Session对象，这些数据在HTTP调用期间将一直保持在内存中。Session中的数据是为每一个用户服务的，Application中的数据是所有用户共享的。</p>
<p>何时需要在Application和Session中装入数据？通常，当应用程序启动或者会话开始时，数据就被装入了。为了在这时装入数据，在Application OnStart()或者Session OnStart()中分别添加适当的代码。这些函数位于文件Global.asa中，如果原来不存在，就添加上。也可以在数据首次需要的时候调入，在ASP页面中添加代码，检查数据是否存在，如果没有发现，就调入它。这里有一个例子，它代表了被称为“lazy evalution”的经典性能处理技术：直到需要，再去计算。 </p>
<p><strong>拷贝经常使用的数据到脚本变量中</strong></p>
<p>在ASP中存取COM对象时，应该拷贝经常使用的对象数据到脚本变量中，这样就减少了对COM对象的方法调用。这些调用要比存取脚本变量相对来说费时费力。当存取Collection和Dictionary对象时，使用这项技巧也减少了昂贵的查找操作。</p>
<p>通常，如果要不止一次地存取对象数据，就应将数据放入脚本变量中，对象数据主要也就是Request变量（表单和查询字符串变量）。比如，站点要传递一个叫做UserID的查询字符串变量，假设它将在一个特殊页面被引用12次，那么不需要调用Request(&#8220;UserID&#8221;)12次，只要在ASP页面的头部分配给UserID一个变量，然后在页面中使用它，这样做就节省了11次COM方法的调用。</p>
<p><strong>在任何可能时使用Server.Transfer，而不要用Response.Redirect</strong></p>
<p>Response.Redirect告诉浏览器请求另一个不同的页面，这常常用于引导用户到登录页面或者出错处理页面。由于重定向强迫了一个新页面请求，结果是浏览器必须要与Web服务器循环2次，并且Web服务器必须处理一个额外的请求。Server.Transfer执行在同一服务器上的页面传输，这将避免额外的浏览器－Web服务器的数据循环，形成良好的系统性能，对于用户也有较好的响应时间。当然Server.Transfer只支持相对路径（即站内使用）。</p>
<p></span></span></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.1xi.net/asp/asp-jiqiao/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>asp的日期和时间函数介绍</title>
		<link>http://blog.1xi.net/asp/asp-riqi-shijian-hanshu</link>
		<comments>http://blog.1xi.net/asp/asp-riqi-shijian-hanshu#comments</comments>
		<pubDate>Mon, 29 Dec 2008 01:25:41 +0000</pubDate>
		<dc:creator>FDS</dc:creator>
				<category><![CDATA[ASP]]></category>
		<category><![CDATA[函数]]></category>

		<guid isPermaLink="false">http://blog.1xi.net/asp/asp-riqi-shijian-hanshu</guid>
		<description><![CDATA[通过asp的函数得到日期和时间，可以使用日期和时间函数来得到各种格式的日期和时间。



函数
语法
说明
示例


Now
Now()
取得系统当前的日期和时间
Dim MyVar MyVar = Now
&#8216;MyVar 包含当前的日期和时间。


Date
Date()
取得系统当前的日期
Dim MyDate MyDate = Date
&#8216;MyDate 包含当前系统日期。


Time
Time()
取得系统当前的时间
Dim MyTime MyTime = Time
&#8216;返回当前系统时间。


Year
Year(Date)
取得给定日期的年份
Dim MyDate, MyYear
MyDate = #October 19, 1962#
&#8216;分派一日期。
MyYear = Year(MyDate)
&#8216;MyYear 包含 1962。


Month
Month(Date)
取得给定日期的月份
Dim MyVar MyVar = Month(Now)
&#8216;MyVar包含当前月对应的数字。


Day
Day(Date)
取得给定日期是几号
Dim MyDay MyDay = Day(&#8220;October 19, 1962&#8243;)
&#8216;MyDay包含 19。


Hour
Hour(time)
取得给定时间是第几小时
Dim MyTime, MyHour
MyTime = Now MyHour = Hour(MyTime)
&#8216;MyHour 包含代表当前时间的数值。


Minute
Minute(time)
取得给定时间是第几分钟
Dim MyVar
MyVar = Minute(Now)


Second
Second(time)
取得给守时间是第几秒
Dim MySec
MySec = Second(Now)
&#8216;MySec 包含代表当前秒的数字。


WeekDay
WeekDay(Date)
取得给定日期是星期几的整数，1表示星期日，2表示星期一，依此类推
Dim MyDate, MyWeekDay
MyDate = #October [...]]]></description>
			<content:encoded><![CDATA[<p>通过asp的函数得到日期和时间，可以使用日期和时间函数来得到各种格式的日期和时间。</p>
<table border="1" cellspacing="0" cellpadding="0" width="100%">
<tbody>
<tr>
<td width="10%">函数</td>
<td width="20%">语法</td>
<td width="20%">说明</td>
<td width="50%">示例</td>
</tr>
<tr>
<td>Now</td>
<td>Now()</td>
<td>取得系统当前的日期和时间</td>
<td>Dim MyVar MyVar = Now<br />
&#8216;MyVar 包含当前的日期和时间。</td>
</tr>
<tr>
<td>Date</td>
<td>Date()</td>
<td>取得系统当前的日期</td>
<td>Dim MyDate MyDate = Date<br />
&#8216;MyDate 包含当前系统日期。</td>
</tr>
<tr>
<td>Time</td>
<td>Time()</td>
<td>取得系统当前的时间</td>
<td>Dim MyTime MyTime = Time<br />
&#8216;返回当前系统时间。</td>
</tr>
<tr>
<td>Year</td>
<td>Year(Date)</td>
<td>取得给定日期的年份</td>
<td>Dim MyDate, MyYear<br />
MyDate = #October 19, 1962#<br />
&#8216;分派一日期。</p>
<p>MyYear = Year(MyDate)<br />
&#8216;MyYear 包含 1962。</td>
</tr>
<tr>
<td>Month</td>
<td>Month(Date)</td>
<td>取得给定日期的月份</td>
<td>Dim MyVar MyVar = Month(Now)<br />
&#8216;MyVar包含当前月对应的数字。</td>
</tr>
<tr>
<td>Day</td>
<td>Day(Date)</td>
<td>取得给定日期是几号</td>
<td>Dim MyDay MyDay = Day(&#8220;October 19, 1962&#8243;)<br />
&#8216;MyDay包含 19。</td>
</tr>
<tr>
<td>Hour</td>
<td>Hour(time)</td>
<td>取得给定时间是第几小时</td>
<td>Dim MyTime, MyHour<br />
MyTime = Now MyHour = Hour(MyTime)<br />
&#8216;MyHour 包含代表当前时间的数值。</td>
</tr>
<tr>
<td>Minute</td>
<td>Minute(time)</td>
<td>取得给定时间是第几分钟</td>
<td>Dim MyVar<br />
MyVar = Minute(Now)</td>
</tr>
<tr>
<td>Second</td>
<td>Second(time)</td>
<td>取得给守时间是第几秒</td>
<td>Dim MySec<br />
MySec = Second(Now)<br />
&#8216;MySec 包含代表当前秒的数字。</td>
</tr>
<tr>
<td>WeekDay</td>
<td>WeekDay(Date)</td>
<td>取得给定日期是星期几的整数，1表示星期日，2表示星期一，依此类推</td>
<td>Dim MyDate, MyWeekDay<br />
MyDate = #October 19, 1962#<br />
&#8216;分派日期</p>
<p>MyWeekDay = Weekday(MyDate)<br />
&#8216;MyWeekDay包含 6,MyDate 代表星期五</td>
</tr>
<tr>
<td>DateDiff</td>
<td>DateDiff(&#8220;Var&#8221;,Var1,Var2)<br />
Var:日期或时间间隔因子，有如下参数：<br />
yyyy 年 m月 d 日 ww星期 h小时 s秒Var1:第一个日期或时间<br />
Var2:第二个日期或时间，比Var1晚</td>
<td>计算两个日期或时间的间隔</td>
<td>DateDiff(&#8220;d&#8221;,Date(),#1/1/2005#)<br />
&#8216;返回离2005元旦还有多少</p>
<p>DateDiff(&#8220;h&#8221;,Date(),#1/1/2005#)<br />
&#8216;返回离2005元旦还有多少小时<br />
DateDiff(&#8220;d&#8221;,#1/1/2003#,#1/1/2005#)<br />
&#8216;返回两个日期之间的天数</td>
</tr>
<tr>
<td>DateAdd</td>
<td>DateDiff(&#8220;Var&#8221;,Var1,Var2)<br />
Var:日期或时间间隔因子：<br />
Var1:日期或时间间隔倍数<br />
Var2:日期或时间的基准</td>
<td>对两个日期或时间作加法</td>
<td>如下示例将 95 年 1 月 31 日加上一个月：NewDate = DateAdd(&#8220;m&#8221;, 1, &#8220;31-Jan-95&#8243;)在这个示例中，<strong>DateAdd</strong> 返回 95 年 2 月 28 日，而不是 95 年 2 月 31 日。如果 <strong>date</strong> 为 96 年 1 月 31 日，则返回 96 年 2 月 29 日，这是因为 1996 是闰年。如果计算的日期是在公元 100 年之前，则会产生错误。</td>
</tr>
<tr>
<td>FormatDateTime</td>
<td>FormatDateTime(Date,vbShortDate)</td>
<td>转化为短日期格式</td>
<td rowspan="4">FromatDateTime(Date(),vbLongDate)<br />
&#8220;以长日期格式显示</td>
</tr>
<tr>
<td> </td>
<td>FormatDateTime(Date,vbLongDate)</td>
<td>转化为长日期格式</td>
</tr>
<tr>
<td> </td>
<td>FormatDateTime(Date,vbShortTime)</td>
<td>转化为短时间格式</td>
</tr>
<tr>
<td> </td>
<td>FormatDateTime(Date,vbLongTime)</td>
<td>转化为长时间格式</td>
</tr>
</tbody>
</table>
]]></content:encoded>
			<wfw:commentRss>http://blog.1xi.net/asp/asp-riqi-shijian-hanshu/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ASP生成静态html页面简单实例</title>
		<link>http://blog.1xi.net/asp/asp-shengcheng-html-shili</link>
		<comments>http://blog.1xi.net/asp/asp-shengcheng-html-shili#comments</comments>
		<pubDate>Mon, 29 Dec 2008 01:21:21 +0000</pubDate>
		<dc:creator>FDS</dc:creator>
				<category><![CDATA[ASP]]></category>
		<category><![CDATA[实例]]></category>

		<guid isPermaLink="false">http://blog.1xi.net/asp/asp-shengcheng-html-shili</guid>
		<description><![CDATA[为了SEO，静态化页面是一个重要的步骤，这里介绍一个ASP生成静态html页面简单实例，比较易懂，看以下代码，可以亲自试试看，让后自己在改变下。
createhtml.asp
&#60;%
filename=&#8221;test.html&#8221;
if request(&#8220;body&#8221;)&#60;&#62;&#8221;" then
set fso = Server.CreateObject(&#8220;Scripting.FileSystemObject&#8221;)
set fout = fso.CreateTextFile(server.mappath(&#8220;&#8221;&#38;filename&#38;&#8221;"))
fout.write &#8220;标题(title):&#8221; &#38; request.form(&#8220;title&#8221;) &#38; &#8220;&#60;br&#62;&#8221;
fout.write &#8220;内容(body):&#8221; &#38; request.form(&#8220;body&#8221;)
fout.close
set fout=nothing
set fso=nothing
end if
%&#62;
&#60;form name=&#8221;form1&#8243; method=&#8221;post&#8221; action=&#8221;"&#62;
&#60;input name=&#8221;title&#8221; size=18&#62;&#60;br&#62;
  &#60;textarea name=&#8221;body&#8221;&#62;&#60;/textarea&#62;
  &#60;br&#62;
  &#60;br&#62;
  &#60;input type=&#8221;submit&#8221; name=&#8221;Submit&#8221; value=&#8221;生成&#8221;&#62;
&#60;/form&#62;

然后在浏览器输入打开createhtml.asp这个页面，填写完毕后，就会生成test.html这个文件，里面的内容就是你刚才填写的。
]]></description>
			<content:encoded><![CDATA[<p><span id="ArticleContent1_ArticleContent1_lblContent">为了SEO，静态化页面是一个重要的步骤，这里介绍一个ASP生成静态html页面简单实例，比较易懂，看以下代码，可以亲自试试看，让后自己在改变下。</span></p>
<blockquote><p><span>createhtml.asp<br />
&lt;%<br />
filename=&#8221;test.html&#8221;<br />
if request(&#8220;body&#8221;)&lt;&gt;&#8221;" then<br />
set fso = Server.CreateObject(&#8220;Scripting.FileSystemObject&#8221;)<br />
set fout = fso.CreateTextFile(server.mappath(&#8220;&#8221;&amp;filename&amp;&#8221;"))<br />
fout.write &#8220;标题(title):&#8221; &amp; request.form(&#8220;title&#8221;) &amp; &#8220;&lt;br&gt;&#8221;<br />
fout.write &#8220;内容(body):&#8221; &amp; request.form(&#8220;body&#8221;)<br />
fout.close<br />
set fout=nothing<br />
set fso=nothing<br />
end if<br />
%&gt;<br />
&lt;form name=&#8221;form1&#8243; method=&#8221;post&#8221; action=&#8221;"&gt;<br />
&lt;input name=&#8221;title&#8221; size=18&gt;&lt;br&gt;<br />
  &lt;textarea name=&#8221;body&#8221;&gt;&lt;/textarea&gt;<br />
  &lt;br&gt;<br />
  &lt;br&gt;<br />
  &lt;input type=&#8221;submit&#8221; name=&#8221;Submit&#8221; value=&#8221;生成&#8221;&gt;<br />
&lt;/form&gt;</span></p></blockquote>
<p><span><br />
然后在浏览器输入打开<span>createhtml</span>.asp这个页面，填写完毕后，就会生成test.html这个文件，里面的内容就是你刚才填写的。</span></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.1xi.net/asp/asp-shengcheng-html-shili/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
