<?xml version="1.0" encoding="UTF-8"?>
  <feed xmlns="http://www.w3.org/2005/Atom">
  <title type="html"><![CDATA[飞扬的口袋 2010 - ms.net]]></title>
  <subtitle type="html"><![CDATA[不要牺牲自己的追求去点亮别人眼中的光环~]]></subtitle>
  <id>http://www.koodai.com.cn/</id>
  <link rel="alternate" type="text/html" href="http://www.koodai.com.cn/" /> 
  <link rel="self" type="application/atom+xml" href="http://www.koodai.com.cn/atom.asp" /> 
  <generator uri="http://www.pjhome.net/" version="2.8">PJBlog3</generator> 
  <updated>2010-03-01T21:04:46+08:00</updated>

  <entry>
	  <title type="html"><![CDATA[一种信息化的学习策略探讨]]></title>
	  <author>
		 <name>admin</name>
		 <uri>http://www.koodai.com.cn/</uri>
		 <email>kisscb@126.com</email>
	  </author>
	  <category term="" scheme="http://www.koodai.com.cn/default.asp?cateID=26" label="ms.net" /> 
	  <updated>2010-03-01T21:04:46+08:00</updated>
	  <published>2010-03-01T21:04:46+08:00</published>
		  <summary type="html"><![CDATA[<p>前言</p>
<p>考研时一门非常艰苦的工作，尤其是选择一流院校的时候，更是面临着无数的困难，因此考前的复习工作没有一定的策略是无法收到比较满意的效果的！而且，我希望以下的思考方法能够在以后其他的工作中被渗透和贯穿。</p>
<p>目标</p>
<p>利用计算机软件技术，结合项目管理、GTD知识、3G应用技术等多项技术，根据各自思想来组织和指导复习工作的方方面面：如1、资料收集；2、信息综合整理；3、进入实际复习阶段；4、新信息的组织和消化；5、时间管理；6、快速学习方法&hellip;&hellip;</p>
<p>关于时间管理</p>
<p>一，时间段的分割</p>
<p>在经过一系列的了解后我大致把考研分为：</p>
<p>1、考研信息的收集整理阶段。该阶段主要是完成对于考研的决心，考研的前景，考研目标学校，就业情况等各个方面的信息收集，首先当然是要决断是否考研；其次是要决定考哪个专业那所学校；再次是复习课程有哪些，使用那些教材和复习资料，学长推荐的资料和共享的计划；最后是对考研的复习时间根据自身情况做一个整体的设计和把握。</p>
<p>2、复习阶段。该阶段可以根据复习计划分为几个不同的部分，这个根据个人的实际情况决定，假如外语和高数是弱项，而专业科比较扎实，那么结合复习时间长短，就应该对公共基础课做深入的学习。我大概做了如下的设想：高数基础差，所以报专业选择了考察数二的科目，外语基础不好，短期内目标是突破词汇。所以：第一阶段，数学课本整个要细致的过一遍&mdash;&mdash;结合李永乐的书；第二阶段是李永乐的书开始看一遍，先对容易的认认真真的做一遍，难的不浪费时间。第三阶段，和第二阶段交叉一起，看课本！第四阶段再复习辅导书，第五，进行真题实战，第六，综合各类讲座等信息，开始对考点做研究。英语的复习，第一是词汇突破，第二真题训练，第三和第二交叉，加强阅读，第四，辅导书从第二阶段开始贯穿始终。第五，作文类题型的模式化分析与记忆。专业科比较简单，政治也无需多言。</p>
<p>3、考点研究和讲座信息的收集阶段。善于捕捉各类考试相关的信息，并迅速做出消化。要善于&ldquo;押题、猜题&rdquo;&mdash;&mdash;这是建立在信息海量收集消化的基础上的！</p>
<p>4、冲刺调整阶段。</p>
<p>5、考试。</p>
<p>6、准备复试~</p>
<p>&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;流程图略</p>
<p>二、时间利用法则</p>
<p>1、化零为整。时间的集中和成块化（block）比零散的复习更容易出成果！</p>
<p>2、见缝插针。要对每天的生活规律做一个细致的了解，然后分析出每天还有哪些时间没有被充分利用，要将生活的每一个细节细化到分钟、秒钟、毫秒级！善于利用个人PDA和软件开发技术做出实际有意义的东西来利用事件&mdash;&mdash;制作工具的过程不会耽误学习，所谓磨刀不误砍柴工！</p>
<p>3、结构化和量化&mdash;&mdash;掌握作息规律的基础上要对复习计划进行量化的设计，结构化的组织！要形成必要的任务系统，每天做哪些事情，在那些时间做完，要达到什么效果或者目标，对之后事务的影响级别（淤塞、关键、重要、次要、常规、加强），截止日期，相关影响因素的考虑，和最后的解决方案（解决、挂起、放弃、其他）等要素。</p>
<p>4、记住要做的事情！总是有很多事情在心里一念而过，还有些计划在执行的时候也总是出现偏差，记住要做的工作，强调执行力，像闹钟一样时刻提醒和帮助打理时间规划&mdash;&mdash;只需要一个有效的个人时间管理工具！</p>
<p>5、讲究效率，不打疲劳战！</p>
<p>========</p>
<p>关于信息收集</p>
<p>考研不仅仅是死读书，信息收集和整理也是一个很重要的部分！掌握准确的消息可以是复习过程事半功倍。而有效个信息收集手段则是必须的。</p>
<p>信息的规律</p>
<p>考研信息也许是一篇长篇大论的复习方法，也有可能是一句话几个字而已，还有可能是一篇英语词汇速记方法。有真也有假。因此信息具有杂乱性、辩证性等特性。有效的组织和过滤，提取有用信息，消除冗余和错误显得非常重要。</p>
<p>信息的收集方法</p>
<p>必须要形成一个可以随时访问到的信息仓库！可以随时的新增、查询各项信息。信息是随时随地都可能获取到的，有用的东西必须及时的记录，定期做整理和精炼。{建立一个在线的信息库}</p>
<p>而且信息要分门别类，按照学科、方法论、综合门类等方式分别组织和整理，各类不同的信息不可以混合在一起。</p>
<p>信息的记录追求简洁、准确无误。</p>
<p>结论：做一个在线的，电脑和手机都能应用的数据库系统，作为信息收集器。</p>
<p>====================</p>
<p>恩，以上主要是这两天对于时间管理和信息收集的感悟和思考，先记录一下。以后如果有其他思考会继续写续篇。</p>
<p>插图：我的好帮手ThinkPad T61 and HTC Magic</p>
<p><img alt="" src="http://www.koodai.com.cn/download.asp?id=79" /></p>
<p>打开这么多网页，而且是后台开启着iis+SqlServer应用服务器和数据库服务器，还有Apache+Mysql服务，WPS+Visio，电脑速度狂飙，丝毫没有不流畅的感觉！非常满意~~ 唯一遗憾的就是T61是商务机型，08年那时候人理解的商务机型的屏幕比例是4：3，所以不是宽屏，遗憾！！！</p>
<p><img alt="" src="http://www.koodai.com.cn/download.asp?id=81" />&nbsp;<img alt="" src="http://www.koodai.com.cn/download.asp?id=80" /></p>
<p>联通3g的网速测试，实际速度800多K，很好啦！不过可惜，在公司的时候只能用2G网络，再次诅咒联通的破网络！我在市区竟然还不能用。。。</p>]]></summary>
	  <link rel="alternate" type="text/html" href="http://www.koodai.com.cn/article/ms-net/一种信息化的学习策略.htm" /> 
	  <id>http://www.koodai.com.cn/default.asp?id=807</id>
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[软件测试NUnit工具的使用教程]]></title>
	  <author>
		 <name>admin</name>
		 <uri>http://www.koodai.com.cn/</uri>
		 <email>kisscb@126.com</email>
	  </author>
	  <category term="" scheme="http://www.koodai.com.cn/default.asp?cateID=26" label="ms.net" /> 
	  <updated>2009-12-16T14:58:27+08:00</updated>
	  <published>2009-12-16T14:58:27+08:00</published>
		  <summary type="html"><![CDATA[<p><img title="Bill Gates" border="5" alt="Bill Gates" align="right" width="104" height="106" style="border-bottom: 0px; border-left: 0px; margin: 0px 10px 5px 0px; display: inline; border-top: 0px; border-right: 0px" src="http://www.koodai.com.cn/attachments/month_0912/v20091216145816.jpg" /></p>
<div id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:efd095c3-c09f-47c3-aaa9-a5a3fdb62b38" class="wlWriterEditableSmartContent" style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px">Technorati 标签: <a rel="tag" href="http://technorati.com/tags/Nunit">Nunit</a></div>
<p>是在.net开发中用于做单元测试的极好工具，它的开发者甚至包含写了设计模式的四人帮GOF中的两位大神。就是这样的工具，完全开源且免费。你可以在<a href="http://www.nunit.org">http://www.nunit.org</a>下载到该工具，中文的使用博客园中有热心人<a target="_blank" href="http://confach.cnblogs.com/">Confach</a>也做了翻译，具体地址是：<a title="http://www.36sign.com/nunit" href="http://www.36sign.com/nunit">http://www.36sign.com/nunit</a>.</p>
<p>具体教程可以参考<strong><a target="_blank" href="http://confach.cnblogs.com/archive/2005/06/20/177817.aspx">NUnit2.0详细使用方法</a>&nbsp;</strong> 下载: 1)NUnit的应用文档 <a href="http://files.cnblogs.com/confach/Documentation.rar">下载</a>&nbsp; 2)本文的PDF版 <a href="http://files.cnblogs.com/confach/NUnit2_PDF.rar">下载 </a>；</p>
<p>这里讲一下我遇见的一个问题，就是web.config中写了数据库字符串，在测试中如何取得这个字符串的问题：</p>
<p>其实很简单，就是把这个文件从项目文件中拷贝到你的测试编译好的dll所在的目录下，重新命名为 xxxxx.dll.config 即可。</p>
<p>目录对应关系：</p>
<p>..\ClassLibrary1\ClassLibrary1\Class1.cs</p>
<p>..\ClassLibrary1\ClassLibrary1\ClassLibrary1.csproj</p>
<p>..\ClassLibrary1\ClassLibrary1\bin\Debug\<font color="#800040"><strong>ClassLibrary1.dll</strong></font></p>
<p>..\ClassLibrary1\ClassLibrary1\bin\Debug\<font color="#ff0080"><strong>ClassLibrary1.dll.Config</strong></font></p>
<p>&nbsp;</p>
<p>Nunit中文版一般都是自己编译来的，我找到一个<a target="_blank" href="http://xiazai.zol.com.cn/detail/27/264331.shtml#down">ZOL的下载地址</a>。</p>
<p>XDown也有，不过最好小心病毒~</p>
<p>&nbsp;</p>
<p>其实测试关键还是在于用例的设计，其余的勉强可以算作是体力劳动而已。</p>
<p>要面面俱到的做完测试，不是一件容易的事情~</p>]]></summary>
	  <link rel="alternate" type="text/html" href="http://www.koodai.com.cn/article/ms-net/软件测试NUnit工具的使用教程.htm" /> 
	  <id>http://www.koodai.com.cn/default.asp?id=790</id>
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[软件测试的几篇文章]]></title>
	  <author>
		 <name>admin</name>
		 <uri>http://www.koodai.com.cn/</uri>
		 <email>kisscb@126.com</email>
	  </author>
	  <category term="" scheme="http://www.koodai.com.cn/default.asp?cateID=26" label="ms.net" /> 
	  <updated>2009-12-15T19:17:28+08:00</updated>
	  <published>2009-12-15T19:17:28+08:00</published>
		  <summary type="html"><![CDATA[<p>收集整理的一些关于软件测试方面的专业文章，具体目录如下：</p>
<p><a href="http://www.koodai.com.cn/attachments/month_0912/m20091215191642.jpg"><img title="未命名" border="0" alt="未命名" width="300" height="516" style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" src="http://www.koodai.com.cn/attachments/month_0912/u20091215191722.jpg" /></a></p>
<p>&nbsp;<img border="0" alt="" src="http://www.zu14.cn/coolemotion/emotions/tu_3.gif" /><img border="0" alt="" src="http://www.zu14.cn/coolemotion/emotions/tu_2.gif" /><img border="0" alt="" src="http://www.zu14.cn/coolemotion/emotions/tu_4.gif" /></p>
<p>Windows Live Writer很好用！感觉非常好！</p>
<p><a href="http://www.koodai.com.cn/download.asp?id=57"><img border="0" alt="" style="margin: 0px 2px -4px 0px" src="http://www.koodai.com.cn/images/download.gif" />点击下载此文件</a>&nbsp;PDF</p>]]></summary>
	  <link rel="alternate" type="text/html" href="http://www.koodai.com.cn/article/ms-net/789.htm" /> 
	  <id>http://www.koodai.com.cn/default.asp?id=789</id>
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[ASP跟PHP对URL ENCODE编码后不同的解释]]></title>
	  <author>
		 <name>admin</name>
		 <uri>http://www.koodai.com.cn/</uri>
		 <email>kisscb@126.com</email>
	  </author>
	  <category term="" scheme="http://www.koodai.com.cn/default.asp?cateID=26" label="ms.net" /> 
	  <updated>2009-10-19T22:04:10+08:00</updated>
	  <published>2009-10-19T22:04:10+08:00</published>
		  <summary type="html"><![CDATA[<p>&nbsp;&nbsp;&nbsp;&nbsp; 昨日在分析SongTatse的歌曲地址的时候，先是用ASP调试的，其中有首歌《念残》，真实的文件地址中文件名是：<span style="color: #ffffff"><span style="background-color: #800000">%E5%BF%B5%E6%AE%8B </span></span>，但是ASP用<span style="color: #ffffff"><span style="background-color: #800080">server.urlencode(&quot;念残&quot;)</span></span>之后的结果却是<span style="color: #ffffff"><span style="background-color: #993366">%C4%EE%B2%D0 </span></span>。 不过当复制地址进迅雷的时候，迅雷都可以正确识别出来文件名为：<span style="color: #ffffff"><span style="background-color: #3366ff">念残</span></span>。奇哉怪哉！百思不得其解。&nbsp;&nbsp;</p>
<div class="codeText">
<div class="codeHead">ASP/Visual Basic代码</div>
<ol class="dp-vb">
    <li class="alt"><span><span>&lt;% &nbsp;&nbsp;</span></span></li>
    <li><span>str=server.urlencode(</span><span class="string">&quot;念残&quot;</span><span>):response.write&nbsp;str &nbsp;&nbsp;</span></li>
    <li class="alt"><span class="comment">'%C4%EE%B2%D0 </span><span>&nbsp;&nbsp;</span></li>
    <li><span>%&gt;&nbsp;&nbsp;</span></li>
</ol>
</div>
<div class="codeText">
<div class="codeHead">PHP代码</div>
<ol class="dp-c">
    <li class="alt"><span><span>&lt;?php &nbsp;&nbsp;</span></span></li>
    <li><span class="func">echo</span><span>&nbsp;urlencode(</span><span class="string">&quot;念残&quot;</span><span>); &nbsp;&nbsp;</span></li>
    <li class="alt"><span class="comment">//%E5%BF%B5%E6%AE%8B </span><span>&nbsp;&nbsp;</span></li>
    <li><span>?&gt;&nbsp;&nbsp;</span></li>
</ol>
</div>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 其实这也不是什么问题，主要是因为太粗心，忽略了文件编码的问题！当把ASP文件修改为UTF8编码后，一切就会变得相同！</p>
<div class="codeText">
<div class="codeHead">ASP/Visual Basic代码</div>
<ol class="dp-vb">
    <li class="alt"><span><span>&lt;% &nbsp;&nbsp;</span></span></li>
    <li><span>response.Charset=</span><span class="string">&quot;utf-8&quot;</span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>str=server.urlencode(</span><span class="string">&quot;念残&quot;</span><span>):response.write&nbsp;str &nbsp;&nbsp;</span></li>
    <li><span class="comment">'%E5%BF%B5%E6%AE%8B </span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>%&gt;&nbsp;&nbsp;</span></li>
</ol>
</div>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 前后这两个ASP文件不同之处在于前者：</p>
<p style="text-align: center">&nbsp;<img alt="" src="http://www.koodai.com.cn/download.asp?id=36" /></p>
<p style="text-align: left">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 也就是说前者是GBK后者是UTF。</p>
<p style="text-align: left">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;~~ 囧</p>
<p style="text-align: left">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 附件： <a target="_blank" href="http://hi.baidu.com/loveyoursmile/blog/item/d918bc0e3fda1ded36d1220c.html">JavaScript 和 Php&nbsp;对中文进行编码&nbsp;</a>&nbsp;&larr; 在AJAX尤其重要！</p>]]></summary>
	  <link rel="alternate" type="text/html" href="http://www.koodai.com.cn/article/ms-net/ASP跟PHP对URLENCODE编码后不同的解释.htm" /> 
	  <id>http://www.koodai.com.cn/default.asp?id=762</id>
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[AspMvc框架 Demo]]></title>
	  <author>
		 <name>admin</name>
		 <uri>http://www.koodai.com.cn/</uri>
		 <email>kisscb@126.com</email>
	  </author>
	  <category term="" scheme="http://www.koodai.com.cn/default.asp?cateID=26" label="ms.net" /> 
	  <updated>2009-10-19T01:25:34+08:00</updated>
	  <published>2009-10-19T01:25:34+08:00</published>
		  <summary type="html"><![CDATA[<p><span style="color: #993366">&nbsp;&nbsp;&nbsp;&nbsp; 今天发现的一个ASP mvc框架，一直以来都抱怨ASP做MVC不方便，即使NET也实现的不是很好，这个框架瞄了几眼，感觉代码可以控制的很精练，具体的实现没顾得上的看呢，不过技术的探索总是好事情，我发现这个网站刚发现，我就找到它了哈哈。</span></p>
<p><strong>AspMvc简介:</strong></p>
<p>&nbsp;&nbsp;&nbsp; AspMvc是一个快速、简单的面向对象的轻量级Asp开发框架,是为了简化企业级应用开发和敏捷WEB应用开发而诞生的。<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;借鉴了国内外很多优秀的(Java Ssh/Net NetMvc3.5 ThinkPhp)框架和模式，使用面向对象的开发结构和MVC模式，RoR的ORM映射，封装了CURD和丰富的工具集等，在缓存机制、认证机制和扩展性方面均有独特的表现。 使用AspMvc，你可以更方便和快捷的开发和部署应用,任何Asp应用开发都可以从AspMvc的简单、兼容和快速的特性中受益。简洁、快速和实用是AspMvc发展秉承的宗旨，为此AspMvc会不断吸收和融入更好的技术以保证其新鲜和活力，提供WEB应用开发的最佳实践.</p>
<p><strong><span lang="EN-US">环境要求:</span></strong></p>
<p><span lang="EN-US">&nbsp;&nbsp;&nbsp; AspMvc</span>可以支持<span lang="EN-US">具有IIS</span>服务器环境，支持Access,Mssql2000,Mssql2005,<span lang="EN-US">Mysql</span>等多种数据库，<span lang="EN-US">其中Access为免费版本,但应保留版权声明</span>.Mssql2000,Mssql2005,Mysql不提供免费版本.请购买商业版本</p>
<p><strong>目录结构:</strong></p>
<div class="codeText">
<div class="codeHead">XML/HTML代码</div>
<ol class="dp-xml">
    <li class="alt"><span><span>目录结构 &nbsp;&nbsp;</span></span></li>
    <li><span>AspMvc的目录结构非常清晰和容易部署。大致的目录结构如下，以项目为基础进行部署。 &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>┎━网站根目录 &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>┃┝&nbsp;Admin&nbsp;管理员文件夹 &nbsp;&nbsp;</span></li>
    <li class="alt"><span>┃┝&nbsp;Com&nbsp;商家文件夹 &nbsp;&nbsp;</span></li>
    <li><span>┃┝&nbsp;User&nbsp;用户文件夹 &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>┃┝&nbsp;DataBase&nbsp;数据库文件夹 &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>┃┝&nbsp;Model&nbsp;Model层文件夹 &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;┝&nbsp;DataBaseOBject&nbsp;数据库对像文件夹 &nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;┗&nbsp;DataBase&nbsp;跨数据库兼容文件夹 &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>┃┝&nbsp;Control&nbsp;控制层文件夹 &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>┃┝&nbsp;Resources&nbsp;网站资源文件夹 &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;┝&nbsp;Code&nbsp;验证码文件夹 &nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;┝&nbsp;Css&nbsp;样式文件夹 &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;┝&nbsp;DataTip&nbsp;时间控制 &nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;┝&nbsp;Editor&nbsp;Web编辑器 &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;┝&nbsp;Images&nbsp;图片文件夹 &nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;┝&nbsp;Js&nbsp;脚本文件夹 &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;┝&nbsp;Md5&nbsp;Md5文件夹 &nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;┝&nbsp;PublicFile&nbsp;网站公用文件夹 &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;┗&nbsp;Swf&nbsp;动画文件夹 &nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>┃&nbsp;┝&nbsp;Tool&nbsp;工具集&nbsp; &nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;┝&nbsp;AspValidate&nbsp;服务端验证 &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;┝&nbsp;Cache&nbsp;缓存 &nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;┝&nbsp;Config&nbsp;配置 &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;┝&nbsp;Creater&nbsp;代码生成器 &nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;┝&nbsp;Form&nbsp;常用表单生成器 &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;┝&nbsp;Language&nbsp;多语言生成器 &nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;┝&nbsp;Log&nbsp;日志工具 &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;┝&nbsp;Mail&nbsp;Jmail邮件调用 &nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;┝&nbsp;Page&nbsp;分页 &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;┝&nbsp;Pay&nbsp;第三方支付 &nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;┝&nbsp;PoJo&nbsp;数据库映射存放文件 &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;┝&nbsp;Rbac&nbsp;权限控制器 &nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;┝&nbsp;Session&nbsp;会话控制 &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;┝&nbsp;Sn&nbsp;序号生成器 &nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;┗&nbsp;Upload&nbsp;无组件上传 &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>┃&nbsp;┝&nbsp;Upload&nbsp;文件上传文件夹 &nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>┗&nbsp;┗&nbsp;Index.asp&nbsp;项目开发指南 &nbsp;&nbsp;</span></li>
</ol>
</div>
<p><a href="http://download.aspmvc.com.cn/AspMvcDemo.rar" target="_blank">AspMvc Demo下载</a>&nbsp;&nbsp;&nbsp;&nbsp; <a href="http://download.aspmvc.com.cn/AspMvcCode.rar" target="_blank">AspMvc v1.1下载</a>&nbsp;&nbsp; 官方网站：<a href="http://www.aspmvc.com.cn/">http://www.aspmvc.com.cn/</a></p>]]></summary>
	  <link rel="alternate" type="text/html" href="http://www.koodai.com.cn/article/ms-net/AspMvc框架-Demo.htm" /> 
	  <id>http://www.koodai.com.cn/default.asp?id=761</id>
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[获取SongTaste上音乐的真实地址]]></title>
	  <author>
		 <name>admin</name>
		 <uri>http://www.koodai.com.cn/</uri>
		 <email>kisscb@126.com</email>
	  </author>
	  <category term="" scheme="http://www.koodai.com.cn/default.asp?cateID=26" label="ms.net" /> 
	  <updated>2009-10-19T01:17:27+08:00</updated>
	  <published>2009-10-19T01:17:27+08:00</published>
		  <summary type="html"><![CDATA[<p><img alt="" src="http://www.koodai.com.cn/download.asp?id=35" /></p>
<p>&nbsp;&nbsp; 因为边分析边测试着写的，太过凌乱，看着有点费事，暂时放上来，但是不建议下载阅读，等我有时间了把变量规范命名后再上传。</p>
<p>&nbsp;&nbsp;&nbsp; 这个程序实现了从SongTatse的歌曲地址分析出存放在RayFile网络硬盘上的音乐文件，可以在线试听。</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;更多的设想：</p>
<p>&nbsp;&nbsp;&nbsp; 1、Ajax查询</p>
<p>&nbsp;&nbsp;&nbsp; 2、整合Flash播放器试听，提供外链至博客的代码</p>
<p>&nbsp;&nbsp;&nbsp; 3、根据专辑进行分析</p>
<p>&nbsp;&nbsp;&nbsp; 4、性能！更优的性能！防止恶意提交，数据堵塞。</p>
<p>&nbsp;&nbsp;&nbsp; 5、缓冲</p>
<p>&nbsp;&nbsp;&nbsp; 6、最热的查询、最新的几次查询</p>
<p>&nbsp;&nbsp;&nbsp; 7、更多&hellip;&hellip;</p>
<p style="text-align: right"><a href="http://www.koodai.com.cn/download.asp?id=34"><img alt="" border="0" style="margin: 0px 2px -4px 0px" src="http://www.koodai.com.cn/images/download.gif" />点击下载此文件</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</p>]]></summary>
	  <link rel="alternate" type="text/html" href="http://www.koodai.com.cn/article/ms-net/获取SongTaste上音乐的真实地址.htm" /> 
	  <id>http://www.koodai.com.cn/default.asp?id=760</id>
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[AspJpeg图片组件的使用方法]]></title>
	  <author>
		 <name>admin</name>
		 <uri>http://www.koodai.com.cn/</uri>
		 <email>kisscb@126.com</email>
	  </author>
	  <category term="" scheme="http://www.koodai.com.cn/default.asp?cateID=26" label="ms.net" /> 
	  <updated>2009-09-23T20:01:31+08:00</updated>
	  <published>2009-09-23T20:01:31+08:00</published>
		  <summary type="html"><![CDATA[<p>&nbsp;&nbsp;&nbsp;&nbsp; 甘肃家教网虽则是一个完全公益的站点，不过好歹也是需要投入服务器和域名的，服务器的选择上自然不可能是使用多好的东西，用的是新誉的虚拟主机，一直以来也算过得去，奈何最近发现总是有人上传证件照片的时候上传2M左右大小的东西，郁闷！这么大的东西不但拖累网速而且浪费空间，我可没有打算往这里再增加投入的。只好自己解决了，想想还是要翻翻ASPJPEG图片处理组件的使用方法，图片自动压缩到一定大小，这样才能控制空间增长。</p>
<p>&nbsp;&nbsp;&nbsp; 1、为图片加入水印功能</p>
<blockquote>
<p>Dim Jpeg<br />
Set Jpeg = Server.CreateObject(&quot;Persits.Jpeg&quot;)&nbsp; ' 建立对象<br />
Jpeg.Open BlogPath &amp; &quot;/upload/&quot; &amp; FileName&nbsp; ' 图片所在位置<br />
Jpeg.Canvas.Font.Color = &amp;H000000 ' 颜色,这里是设置成:黑 <br />
Jpeg.Canvas.Font.Family = &quot;方正隶变简体&quot;&nbsp; ' 设置字体 <br />
Jpeg.Canvas.Font.Bold = False '是否设置成粗体 <br />
Jpeg.Canvas.Font.Size = 26 '字体大小 <br />
Jpeg.Canvas.Font.Quality = 4 ' 文字清晰度<br />
Jpeg.Canvas.Print Jpeg.OriginalWidth/2-170,Jpeg.OriginalHeight-30, &quot;<font color="#4e0a13">www.gsjiajiao.c</font>om&quot;&nbsp;&nbsp; '水印文字<br />
Jpeg.Save BlogPath &amp; &quot;/upload/&quot; &amp; FileName&nbsp; ' 保存文件<br />
Set Jpeg = Nothing</p>
</blockquote>
<p>　　2、为图片制作缩略图</p>
<blockquote>
<p>Dim Jpeg<br />
Set Jpeg = Server.CreateObject(&quot;Persits.Jpeg&quot;)&nbsp; ' 建立对象<br />
Jpeg.Open BlogPath &amp; &quot;/upload/&quot; &amp; FileName&nbsp; ' 图片所在位置<br />
Jpeg.Width = Jpeg.OriginalWidth / 2 <br />
Jpeg.Height = Jpeg.OriginalHeight / 2 <br />
' 设置缩略图大小（这里比例设定为50%），也可以给他准确的数值，比如Jpeg.Width=120 <br />
Jpeg.Save BlogPath &amp; &quot;/upload/&quot; &amp; FileName&nbsp; ' 保存文件<br />
Set Jpeg = Nothing<br />
&nbsp;</p>
</blockquote>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a target="_blank" href="http://www.williamlong.info/archives/539.html">月光博客找到的两段代码</a>，非常好用，<a target="_blank" href="http://hi.baidu.com/dpsing/blog/item/7729d6339c6a8d43ac4b5fe9.html">具体的还有个地方可以读读</a>。</p>
<p>在网站前台产品展示时，一般用缩略图，点击进入然后看到大图。<br />
缩略图带来了两个烦劳：<br />
1.如果后台只传一张大图，显示缩略图时只是将大图固定宽度和高度，这样不但造成缩略图变形，而且使得页面访问速度缓慢。<br />
2.如果后台每次上传时，都上传两张图片，一张大图，一张缩略图。这样的话，没有1中的问题，但是给后台人员造成很大麻烦。因为后台人员并不一定知道处理生成缩略图；即使知道并能快速处理，也浪费掉一些时间。</p>
<p>下面的代码可以帮您用AspJpeg组件，按宽高比例，真正生成缩略图<br />
AspJpeg组件下载：<a href="http://www.aspjpeg.com/download.html">http://www.aspjpeg.com/download.html</a><br />
AspJpeg组件使用：<a href="http://www.mydw.cn/tech/1/766.html">http://www.mydw.cn/tech/1/766.html</a><br />
注册码：48958-77556-02411</p>
<div class="codeText">
<div class="codeHead">ASP/Visual Basic代码</div>
<ol class="dp-vb">
    <li class="alt"><span><span class="keyword">Dim</span><span>&nbsp;sOriginalPath &nbsp;&nbsp;</span></span></li>
    <li><span>sOriginalPath&nbsp;=&nbsp;</span><span class="string">&quot;images/1.gif&quot;</span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>'原图片路径一般上传完毕后获取，或者从数据库获取 &nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span class="keyword">Dim</span><span>&nbsp;sReturnInfo,&nbsp;sSmallPath&nbsp;'函数返回信息,&nbsp;缩略图路径 &nbsp;&nbsp;</span></li>
    <li><span>sReturnInfo&nbsp;=&nbsp;BuildSmallPic(sOriginalPath,&nbsp;</span><span class="string">&quot;images&quot;</span><span>,&nbsp;100,&nbsp;100) &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>Response.Write&nbsp;</span><span class="string">&quot;返回信息:&quot;</span><span>&nbsp;&amp;&nbsp;sReturnInfo&nbsp;&amp;&nbsp;</span><span class="string">&quot;&lt;br/&gt;&quot;</span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span class="keyword">If</span><span>&nbsp;InStr(sReturnInfo,&nbsp;</span><span class="string">&quot;Error_&quot;</span><span>)&nbsp;&lt;=&nbsp;0&nbsp;</span><span class="keyword">Then</span><span>&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;sSmallPath&nbsp;=&nbsp;sReturnInfo&nbsp;'返回信息就是&nbsp; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;'将sSmallPath写入数据库 &nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span></li>
    <li class="alt"><span class="keyword">Else</span><span>&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;Response.Write&nbsp;</span><span class="string">&quot;详细错误:&quot;</span><span>&nbsp; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">Select</span><span>&nbsp;</span><span class="keyword">Case</span><span>&nbsp;sReturnInfo &nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">Case</span><span>&nbsp;</span><span class="string">&quot;Error_01&quot;</span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Response.Write&nbsp;</span><span class="string">&quot;&lt;font&nbsp;color=red&gt;创建AspJpeg组件失败,没有正确安装注册该组件&lt;/font&gt;&quot;</span><span>&nbsp;&amp;&nbsp;</span><span class="string">&quot;&lt;br/&gt;&quot;</span><span>&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">Case</span><span>&nbsp;</span><span class="string">&quot;Error_02&quot;</span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Response.Write&nbsp;</span><span class="string">&quot;&lt;font&nbsp;color=red&gt;原图片不存在,检查s_OriginalPath参数传入值&lt;/font&gt;&quot;</span><span>&nbsp;&amp;&nbsp;</span><span class="string">&quot;&lt;br/&gt;&quot;</span><span>&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">Case</span><span>&nbsp;</span><span class="string">&quot;Error_03&quot;</span><span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Response.Write&nbsp;</span><span class="string">&quot;&lt;font&nbsp;color=red&gt;缩略图存盘失败.可能原因:缩略图保存基地址不存在,检查s_OriginalPath参数传入值;对目录没有写权限;磁盘空间不足&lt;/font&gt;&quot;</span><span>&nbsp;&amp;&nbsp;</span><span class="string">&quot;&lt;br/&gt;&quot;</span><span>&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">Case</span><span>&nbsp;</span><span class="string">&quot;Error_Other&quot;</span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Response.Write&nbsp;</span><span class="string">&quot;&lt;font&nbsp;color=red&gt;未知错误&lt;/font&gt;&quot;</span><span>&nbsp;&amp;&nbsp;</span><span class="string">&quot;&lt;br/&gt;&quot;</span><span>&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">End</span><span>&nbsp;</span><span class="keyword">Select</span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;Response.</span><span class="keyword">End</span><span>&nbsp;&nbsp;</span></li>
    <li><span class="keyword">End</span><span>&nbsp;</span><span class="keyword">If</span><span>&nbsp;&nbsp;</span></li>
</ol>
</div>
<p>原文件名：&lt;%=sOriginalPath%&gt;&lt;br/&gt;<br />
缩略图文件名：&lt;%=sSmallPath%&gt;&lt;br/&gt;<br />
原图片：&lt;img src=&lt;%=sOriginalPath%&gt; border=0&gt;&lt;br/&gt;&lt;br/&gt;<br />
缩略图：&lt;img src=&lt;%=sSmallPath%&gt; border=0&gt;</p>
<div class="codeText">
<div class="codeHead">ASP/Visual Basic代码</div>
<ol class="dp-vb">
    <li class="alt"><span><span class="comment">'Author：laifangsong&nbsp;QQ:25313644 </span><span>&nbsp;&nbsp;</span></span></li>
    <li><span class="comment">'功能：按照指定图片生成缩略图 </span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span class="comment">'注意：以下提到的&ldquo;路径&rdquo;都是值相对于调用本函数的文件的相对路径 </span><span>&nbsp;&nbsp;</span></li>
    <li><span class="comment">'参数： </span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span class="comment">'&nbsp;&nbsp;&nbsp;&nbsp;s_OriginalPath:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;原图片路径&nbsp;例:images/image1.gif </span><span>&nbsp;&nbsp;</span></li>
    <li><span class="comment">'&nbsp;&nbsp;&nbsp;&nbsp;s_BuildBasePath:&nbsp;&nbsp;&nbsp;&nbsp;生成图片的基路径,不论是否以&ldquo;/&rdquo;结尾均'可&nbsp;例:images或images/ </span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span class="comment">'&nbsp;&nbsp;&nbsp;&nbsp;n_MaxWidth:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;生成图片最大宽度 </span><span>&nbsp;&nbsp;</span></li>
    <li><span class="comment">'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;如果在前台显示的缩略图是&nbsp;100*100,这里&nbsp;'n_MaxWidth=100,n_MaxHeight=100. </span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span class="comment">'&nbsp;&nbsp;&nbsp;&nbsp;n_MaxHeight:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;生成图片最大高度 </span><span>&nbsp;&nbsp;</span></li>
    <li><span class="comment">'返回值： </span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span class="comment">'&nbsp;&nbsp;&nbsp;&nbsp;返回生成后的缩略图的路径 </span><span>&nbsp;&nbsp;</span></li>
    <li><span class="comment">'错误处理： </span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span class="comment">'&nbsp;&nbsp;&nbsp;&nbsp;如果函数执行过程中出现错误,将返回错误代码,错误代码以&nbsp;&ldquo;Error&rdquo;开头 </span><span>&nbsp;&nbsp;</span></li>
    <li><span class="comment">'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Error_01:创建AspJpeg组件失败,没有正确安装注册该组件 </span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span class="comment">'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Error_02:原图片不存在,检查s_OriginalPath参数传入值 </span><span>&nbsp;&nbsp;</span></li>
    <li><span class="comment">'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Error_03:缩略图存盘失败.可能原因:缩略图保存基地址不存在,检查s_OriginalPath参数传入值;对目录没有写权限;磁盘空间不足 </span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;</span><span class="comment">'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Error_Other:未知错误 </span><span>&nbsp;&nbsp;</span></li>
    <li><span class="comment">'调用例子: </span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;</span><span class="comment">'&nbsp;&nbsp;&nbsp;Dim&nbsp;sSmallPath&nbsp;缩略图路径 </span><span>&nbsp;&nbsp;</span></li>
    <li><span class="comment">'&nbsp;&nbsp;&nbsp;&nbsp;sSmallPath&nbsp;=&nbsp;BuildSmallPic'(&quot;images/image1.gif&quot;,&nbsp;&quot;images&quot;,&nbsp;100,&nbsp;100)&nbsp;&nbsp;&nbsp;&nbsp; </span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span class="comment">'================================================================ </span><span>&nbsp;&nbsp;</span></li>
    <li><span class="keyword">Function</span><span>&nbsp;BuildSmallPic(s_OriginalPath,&nbsp;s_BuildBasePath,&nbsp;n_MaxWidth,&nbsp;n_MaxHeight) &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;Err.Clear &nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">On</span><span>&nbsp;</span><span class="keyword">Error</span><span>&nbsp;</span><span class="keyword">Resume</span><span>&nbsp;</span><span class="keyword">Next</span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span></li>
    <li><span class="comment">'&nbsp;&nbsp;&nbsp;&nbsp;检查组件是否已经注册 </span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">Dim</span><span>&nbsp;AspJpeg &nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">Set</span><span>&nbsp;AspJpeg&nbsp;=&nbsp;Server.Createobject(</span><span class="string">&quot;Persits.Jpeg&quot;</span><span>) &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">If</span><span>&nbsp;Err.Number&nbsp;&lt;&gt;&nbsp;0&nbsp;</span><span class="keyword">Then</span><span>&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Err.Clear &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BuildSmallPic&nbsp;=&nbsp;</span><span class="string">&quot;Error_01&quot;</span><span>&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">Exit</span><span>&nbsp;</span><span class="keyword">Function</span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">End</span><span>&nbsp;</span><span class="keyword">If</span><span>&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span class="comment">'&nbsp;&nbsp;&nbsp;&nbsp;检查原图片是否存在 </span><span>&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">Dim</span><span>&nbsp;s_MapOriginalPath &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;s_MapOriginalPath&nbsp;=&nbsp;Server.MapPath(s_OriginalPath) &nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;AspJpeg.Open&nbsp;s_MapOriginalPath&nbsp;</span><span class="comment">'打开原图片 </span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">If</span><span>&nbsp;Err.Number&nbsp;&lt;&gt;&nbsp;0&nbsp;</span><span class="keyword">Then</span><span>&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Err.Clear &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BuildSmallPic&nbsp;=&nbsp;</span><span class="string">&quot;Error_02&quot;</span><span>&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">Exit</span><span>&nbsp;</span><span class="keyword">Function</span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">End</span><span>&nbsp;</span><span class="keyword">If</span><span>&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span class="comment">'&nbsp;&nbsp;&nbsp;&nbsp;按比例取得缩略图宽度和高度 </span><span>&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">Dim</span><span>&nbsp;n_OriginalWidth,&nbsp;n_OriginalHeight&nbsp;</span><span class="comment">'原图片宽度、高度 </span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">Dim</span><span>&nbsp;n_BuildWidth,&nbsp;n_BuildHeight&nbsp;</span><span class="comment">'缩略图宽度、高度 </span><span>&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">Dim</span><span>&nbsp;div1,&nbsp;div2 &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">Dim</span><span>&nbsp;n1,&nbsp;n2 &nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;n_OriginalWidth&nbsp;=&nbsp;AspJpeg.Width &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;n_OriginalHeight&nbsp;=&nbsp;AspJpeg.Height &nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;div1&nbsp;=&nbsp;n_OriginalWidth&nbsp;/&nbsp;n_OriginalHeight &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;div2&nbsp;=&nbsp;n_OriginalHeight&nbsp;/&nbsp;n_OriginalWidth &nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;n1&nbsp;=&nbsp;0 &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;n2&nbsp;=&nbsp;0 &nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">If</span><span>&nbsp;n_OriginalWidth&nbsp;&gt;&nbsp;n_MaxWidth&nbsp;</span><span class="keyword">Then</span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;n1&nbsp;=&nbsp;n_OriginalWidth&nbsp;/&nbsp;n_MaxWidth &nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">Else</span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;n_BuildWidth&nbsp;=&nbsp;n_OriginalWidth &nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">End</span><span>&nbsp;</span><span class="keyword">If</span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">If</span><span>&nbsp;n_OriginalHeight&nbsp;&gt;&nbsp;n_MaxHeight&nbsp;</span><span class="keyword">Then</span><span>&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;n2&nbsp;=&nbsp;n_OriginalHeight&nbsp;/&nbsp;n_MaxHeight &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">Else</span><span>&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;n_BuildHeight&nbsp;=&nbsp;n_OriginalHeight &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">End</span><span>&nbsp;</span><span class="keyword">If</span><span>&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">If</span><span>&nbsp;n1&nbsp;&lt;&gt;&nbsp;0&nbsp;</span><span class="keyword">Or</span><span>&nbsp;n2&nbsp;&lt;&gt;&nbsp;0&nbsp;</span><span class="keyword">Then</span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">If</span><span>&nbsp;n1&nbsp;&gt;&nbsp;n2&nbsp;</span><span class="keyword">Then</span><span>&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;n_BuildWidth&nbsp;=&nbsp;n_MaxWidth &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;n_BuildHeight&nbsp;=&nbsp;n_MaxWidth&nbsp;*&nbsp;div2 &nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">Else</span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;n_BuildWidth&nbsp;=&nbsp;n_MaxHeight&nbsp;*&nbsp;div1 &nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;n_BuildHeight&nbsp;=&nbsp;n_MaxHeight &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">End</span><span>&nbsp;</span><span class="keyword">If</span><span>&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">End</span><span>&nbsp;</span><span class="keyword">If</span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span class="comment">'&nbsp;&nbsp;&nbsp;&nbsp;指定宽度和高度生成 </span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;AspJpeg.Width&nbsp;=&nbsp;n_BuildWidth &nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;AspJpeg.Height&nbsp;=&nbsp;n_BuildHeight &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span></li>
    <li><span class="comment">'&nbsp;&nbsp;&nbsp;&nbsp;--将缩略图存盘开始-- </span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">Dim</span><span>&nbsp;pos,&nbsp;s_OriginalFileName,&nbsp;s_OriginalFileExt&nbsp;</span></li>
    <li class="alt"><span class="comment">'位置、原文件名、原文件扩展名 </span><span>&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;pos&nbsp;=&nbsp;InStrRev(s_OriginalPath,&nbsp;</span><span class="string">&quot;/&quot;</span><span>)&nbsp;+&nbsp;1 &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;s_OriginalFileName&nbsp;=&nbsp;Mid(s_OriginalPath,&nbsp;pos) &nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;pos&nbsp;=&nbsp;InStrRev(s_OriginalFileName,&nbsp;</span><span class="string">&quot;.&quot;</span><span>) &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;s_OriginalFileExt&nbsp;=&nbsp;Mid(s_OriginalFileName,&nbsp;pos) &nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">Dim</span><span>&nbsp;s_MapBuildBasePath,&nbsp;s_MapBuildPath,&nbsp;s_BuildFileName&nbsp;</span></li>
    <li class="alt"><span class="comment">'缩略图绝对路径、缩略图文件名 </span><span>&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">Dim</span><span>&nbsp;s_EndFlag&nbsp; &nbsp;&nbsp;</span></li>
    <li class="alt"><span class="comment">'小图片文件名结尾标识&nbsp;例:&nbsp;如果大图片文件名是&ldquo;image1.gif&rdquo;,结尾标识是&ldquo;_small&rdquo;,那么小图片文件名就是&ldquo;image1_small.gif&rdquo; </span><span>&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">If</span><span>&nbsp;Right(s_BuildBasePath,&nbsp;1)&nbsp;&lt;&gt;&nbsp;</span><span class="string">&quot;/&quot;</span><span>&nbsp;</span><span class="keyword">Then</span><span>&nbsp;s_BuildBasePath&nbsp;=&nbsp;s_BuildBasePath&nbsp;&amp;&nbsp;</span><span class="string">&quot;/&quot;</span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;s_MapBuildBasePath&nbsp;=&nbsp;Server.MapPath(s_BuildBasePath) &nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;s_EndFlag&nbsp;=&nbsp;</span><span class="string">&quot;_small&quot;</span><span>&nbsp;</span><span class="comment">'可以自定义,只要能区别大小图片即可 </span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;s_BuildFileName&nbsp;=&nbsp;Replace(s_OriginalFileName,&nbsp;s_OriginalFileExt,&nbsp;</span><span class="string">&quot;&quot;</span><span>)&nbsp;&amp;&nbsp;s_EndFlag&nbsp;&amp;&nbsp;s_OriginalFileExt &nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;s_MapBuildPath&nbsp;=&nbsp;s_MapBuildBasePath&nbsp;&amp;&nbsp;</span><span class="string">&quot;\&quot;&nbsp;&amp;&nbsp;s_BuildFileName </span>&nbsp;</li>
    <li class="alt"><span><span class="string">&nbsp;&nbsp;&nbsp;&nbsp; </span>&nbsp;</span></li>
    <li><span><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;AspJpeg.Save&nbsp;s_MapBuildPath&nbsp;'保存 </span>&nbsp;</span></li>
    <li class="alt"><span><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;If&nbsp;Err.Number&nbsp;&lt;&gt;&nbsp;0&nbsp;Then </span>&nbsp;</span></li>
    <li><span><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Err.Clear </span>&nbsp;</span></li>
    <li class="alt"><span><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BuildSmallPic&nbsp;=&nbsp;&quot;</span><span>Error_03</span><span class="string">&quot; </span>&nbsp;</span></li>
    <li><span><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Exit&nbsp;Function </span>&nbsp;</span></li>
    <li class="alt"><span><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;End&nbsp;If </span>&nbsp;</span></li>
    <li><span><span class="string">&nbsp;'&nbsp;&nbsp;&nbsp;--将缩略图存盘结束-- </span>&nbsp;</span></li>
    <li class="alt"><span>&nbsp;</span></li>
    <li><span><span class="string">&nbsp;&nbsp;'&nbsp;&nbsp;注销实例 </span>&nbsp;</span></li>
    <li class="alt"><span><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;Set&nbsp;AspJpeg&nbsp;=&nbsp;Nothing </span>&nbsp;</span></li>
    <li><span><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;If&nbsp;Err.Number&nbsp;&lt;&gt;&nbsp;0&nbsp;Then </span>&nbsp;</span></li>
    <li class="alt"><span><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BuildSmallPic&nbsp;=&nbsp;&quot;</span><span>Error_Other&quot; &nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Err.Clear &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">End</span><span>&nbsp;</span><span class="keyword">If</span><span>&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;BuildSmallPic&nbsp;=&nbsp;s_BuildBasePath&nbsp;&amp;&nbsp;s_BuildFileName &nbsp;&nbsp;</span></li>
    <li class="alt"><span class="keyword">End</span><span>&nbsp;</span><span class="keyword">Function</span><span>&nbsp;&nbsp;</span></li>
</ol>
</div>
<p>&nbsp;ASPJPEG精确生成缩略图,先裁切再缩略</p>
<div class="codeText">
<div class="codeHead">ASP/Visual Basic代码</div>
<ol class="dp-vb">
    <li class="alt"><span><span class="keyword">Const</span><span>&nbsp;CurrDomain=</span><span class="string">&quot;http://net.todo.net.cn/&quot;</span><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">'程序所在域 </span><span>&nbsp;&nbsp;</span></span></li>
    <li><span class="keyword">Const</span><span>&nbsp;SysSmallFix=</span><span class="string">&quot;TodoSmall_&quot;</span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">'缩略图的后缀，注意保持全局一致Function&nbsp;MakeSL&nbsp;(BasePic,NewPic,SL_Width,SL_Height) </span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span class="keyword">Dim</span><span>&nbsp;ToDoJpeg &nbsp;&nbsp;</span></li>
    <li><span class="keyword">Dim</span><span>&nbsp;SJ_Width,SJ_Height,YG_Width,YG_Height,ZZ_Width,ZZ_Height,CQ_Type &nbsp;&nbsp;</span></li>
    <li class="alt"><span class="keyword">Dim</span><span>&nbsp;x,y,w,h &nbsp;&nbsp;</span></li>
    <li><span class="keyword">Dim</span><span>&nbsp;BaseFolder,BaseFile&nbsp; &nbsp;&nbsp;</span></li>
    <li class="alt"><span class="comment">'第一步，建立ASPJPEG组件，打开原图 </span><span>&nbsp;&nbsp;</span></li>
    <li><span class="keyword">Set</span><span>&nbsp;ToDoJpeg&nbsp;=&nbsp;Server.CreateObject(</span><span class="string">&quot;Persits.Jpeg&quot;</span><span>) &nbsp;&nbsp;</span></li>
    <li class="alt"><span>ToDoJpeg.Open&nbsp;Server.mappath(BasePic)&nbsp; &nbsp;&nbsp;</span></li>
    <li><span class="comment">'第二步，并给出图片高宽 </span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>SJ_Width=ToDoJpeg.Width &nbsp;&nbsp;</span></li>
    <li><span>SJ_Height=ToDoJpeg.Height &nbsp;&nbsp;</span></li>
    <li class="alt"><span>response.write&nbsp;</span><span class="string">&quot;原图宽：&quot;</span><span>&amp;SJ_Width &nbsp;&nbsp;</span></li>
    <li><span>response.write&nbsp;</span><span class="string">&quot;&lt;br&gt;&quot;</span><span>&nbsp; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>response.write&nbsp;</span><span class="string">&quot;原图高：&quot;</span><span>&amp;SJ_Height &nbsp;&nbsp;</span></li>
    <li><span>response.write&nbsp;</span><span class="string">&quot;&lt;br&gt;&quot;</span><span>&nbsp; &nbsp;&nbsp;</span></li>
    <li class="alt"><span class="comment">'第三步，根据轮显图片的宽高，裁切图片 </span><span>&nbsp;&nbsp;</span></li>
    <li><span class="comment">'只裁切比缩略图大的，如果有一个边小于缩略图，返回原图&nbsp; </span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span class="comment">'有五种形式：等高等宽；等宽大高；等高大宽；大宽小高；大高小宽 </span><span>&nbsp;&nbsp;</span></li>
    <li><span>YG_Width=((SL_Width*SJ_Height)/SL_Height) &nbsp;&nbsp;</span></li>
    <li class="alt"><span>YG_Height=((SL_Height*SJ_Width)/SL_Width) &nbsp;&nbsp;</span></li>
    <li><span>response.write&nbsp;</span><span class="string">&quot;放大图应该宽：&quot;</span><span>&amp;YG_Width &nbsp;&nbsp;</span></li>
    <li class="alt"><span>response.write&nbsp;</span><span class="string">&quot;&lt;br&gt;&quot;</span><span>&nbsp; &nbsp;&nbsp;</span></li>
    <li><span>response.write&nbsp;</span><span class="string">&quot;放大图应该高：&quot;</span><span>&amp;YG_Height &nbsp;&nbsp;</span></li>
    <li class="alt"><span>response.write&nbsp;</span><span class="string">&quot;&lt;br&gt;&quot;</span><span>&nbsp; &nbsp;&nbsp;</span></li>
    <li><span>if&nbsp;SJ_Width&gt;YG_Width&nbsp;then&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">'横向裁切 </span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;ZZ_Width=YG_Width &nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;ZZ_Height=SJ_Height &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;CQ_Type=-1 &nbsp;&nbsp;</span></li>
    <li><span>elseif&nbsp;SJ_Width=YG_Width&nbsp;then&nbsp;</span><span class="comment">'不裁切 </span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;ZZ_Width=YG_Width &nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;ZZ_Height=YG_Height &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;CQ_Type=0 &nbsp;&nbsp;</span></li>
    <li><span>elseif&nbsp;SJ_Width&lt;YG_Width&nbsp;then&nbsp;</span><span class="comment">'竖向裁切 </span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;ZZ_Width=SJ_Width &nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;ZZ_Height=YG_Height &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;CQ_Type=1 &nbsp;&nbsp;</span></li>
    <li><span>end&nbsp;if &nbsp;&nbsp;</span></li>
    <li class="alt"><span>response.write&nbsp;</span><span class="string">&quot;最终确定裁切宽：&quot;</span><span>&amp;ZZ_Width &nbsp;&nbsp;</span></li>
    <li><span>response.write&nbsp;</span><span class="string">&quot;&lt;br&gt;&quot;</span><span>&nbsp; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>response.write&nbsp;</span><span class="string">&quot;最终确定裁切高：&quot;</span><span>&amp;ZZ_Height &nbsp;&nbsp;</span></li>
    <li><span>response.write&nbsp;</span><span class="string">&quot;&lt;br&gt;&quot;</span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>x=0 &nbsp;&nbsp;</span></li>
    <li class="alt"><span>y=0 &nbsp;&nbsp;</span></li>
    <li><span>w=ZZ_Width &nbsp;&nbsp;</span></li>
    <li class="alt"><span>h=ZZ_Height&nbsp;if&nbsp;CQ_Type=-1&nbsp;then &nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;x=Cint((SJ_Width-YG_Width)/2) &nbsp;&nbsp;</span></li>
    <li class="alt"><span>elseif&nbsp;CQ_Type=1&nbsp;then &nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;y=Cint((SJ_Height-YG_Height)/2) &nbsp;&nbsp;</span></li>
    <li class="alt"><span>end&nbsp;if &nbsp;&nbsp;</span></li>
    <li><span>response.write&nbsp;</span><span class="string">&quot;X点：&quot;</span><span>&amp;x &nbsp;&nbsp;</span></li>
    <li class="alt"><span>response.write&nbsp;</span><span class="string">&quot;&lt;br&gt;&quot;</span><span>&nbsp; &nbsp;&nbsp;</span></li>
    <li><span>response.write&nbsp;</span><span class="string">&quot;Y点：&quot;</span><span>&amp;y &nbsp;&nbsp;</span></li>
    <li class="alt"><span>response.write&nbsp;</span><span class="string">&quot;&lt;br&gt;&quot;</span><span>&nbsp;&nbsp;</span></li>
    <li><span>ToDoJpeg.Crop&nbsp;x,y,x+w,y+h&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">'裁切&nbsp; </span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span class="comment">'第四步,缩略 </span><span>&nbsp;&nbsp;</span></li>
    <li><span>ToDoJpeg.Width=SL_Width &nbsp;&nbsp;</span></li>
    <li class="alt"><span>ToDoJpeg.Height=SL_Height &nbsp;&nbsp;</span></li>
    <li><span class="comment">'&nbsp;第五步，保存结果 </span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>BasePic=Replace(BasePic,</span><span class="string">&quot;/&quot;</span><span>,</span><span class="string">&quot;\&quot;) </span>&nbsp;</li>
    <li><span><span class="string">BaseFolder=Left(BasePic,InstrRev(BasePic,&quot;</span><span>\</span><span class="string">&quot;)) </span>&nbsp;</span></li>
    <li class="alt"><span><span class="string">BaseFile=Right(BasePic,Len(BasePic)-InstrRev(BasePic,&quot;</span><span>\</span><span class="string">&quot;)) </span>&nbsp;</span></li>
    <li><span>&nbsp;</span></li>
    <li class="alt"><span><span class="string">if&nbsp;BaseFolder&lt;&gt;&quot;</span><span class="string">&quot;&nbsp;then </span>&nbsp;</span></li>
    <li><span><span class="string">NewPic=BaseFolder&amp;SysSmallFix&amp;BaseFile </span>&nbsp;</span></li>
    <li class="alt"><span><span class="string">else </span>&nbsp;</span></li>
    <li><span><span class="string">NewPic=SysSmallFix&amp;BaseFile </span>&nbsp;</span></li>
    <li class="alt"><span><span class="string">end&nbsp;if </span>&nbsp;</span></li>
    <li><span><span class="string">ToDoJpeg.save&nbsp;Server.mappath(NewPic)&nbsp; </span>&nbsp;</span></li>
    <li class="alt"><span><span class="string">'第六步，释放组件对象 </span>&nbsp;</span></li>
    <li><span><span class="string">Set&nbsp;ToDoJpeg&nbsp;=&nbsp;Nothing&nbsp; </span>&nbsp;</span></li>
    <li class="alt"><span><span class="string">'第七步，返回缩略图路径 </span>&nbsp;</span></li>
    <li><span><span class="string">MakeSL=NewPic </span>&nbsp;</span></li>
    <li class="alt"><span><span class="string">End&nbsp;Function </span>&nbsp;</span></li>
    <li><span><span class="string">Response.write(&quot;</span><span>&lt;img&nbsp;src=</span><span class="comment">'&quot;&amp;CurrDomain&amp;&quot;\sl/&quot;&amp;MakeSL&nbsp;(&quot;test.jpg&quot;,&quot;&quot;,120,90)&amp;&quot;'&gt;&quot;) </span><span>&nbsp;&nbsp;</span></span></li>
</ol>
</div>
<p>代码自动高亮好像有点问题，不过程序是没错误的</p>]]></summary>
	  <link rel="alternate" type="text/html" href="http://www.koodai.com.cn/article/ms-net/AspJpeg图片组件的使用方法.htm" /> 
	  <id>http://www.koodai.com.cn/default.asp?id=746</id>
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[陷入极度崩溃的：C#”标准表达式中数据类型不匹配&#34;]]></title>
	  <author>
		 <name>admin</name>
		 <uri>http://www.koodai.com.cn/</uri>
		 <email>kisscb@126.com</email>
	  </author>
	  <category term="" scheme="http://www.koodai.com.cn/default.asp?cateID=26" label="ms.net" /> 
	  <updated>2009-03-25T00:56:48+08:00</updated>
	  <published>2009-03-25T00:56:48+08:00</published>
		  <summary type="html"><![CDATA[陷入极度崩溃！<br/>今天使用的是ACCESS数据库，不同于sql数据库，所以遇见了很多问题！<br/>刚开始的时候还是没有引入命名空间，必须要加上：<div class="UBBPanel codePanel"><div class="UBBTitle"><a onClick="copycode(code57180);" style="float:right;cursor: pointer;font-weight: normal; font-style: normal">复制内容到剪贴板</a><img src="http://www.koodai.com.cn/images/code.gif" style="margin:0px 2px -3px 0px;" alt="程序代码"/> 程序代码</div><div class="UBBContent" id=code57180>using System.Data.OleDb;</div></div><br/>我在web.config中使用的连接字符串是：<div class="UBBPanel codePanel"><div class="UBBTitle"><a onClick="copycode(code48894);" style="float:right;cursor: pointer;font-weight: normal; font-style: normal">复制内容到剪贴板</a><img src="http://www.koodai.com.cn/images/code.gif" style="margin:0px 2px -3px 0px;" alt="程序代码"/> 程序代码</div><div class="UBBContent" id=code48894>&#160;&#160;&#160;&#160;&lt;appSettings&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;add key=&#34;provider&#34; value=&#34;Provider=Microsoft.Jet.OLEDB.4.0;data source=&#34; /&gt;<br/>&nbsp;&nbsp;&lt;add key=&#34;database&#34; value=&#34;~/database/database.mdb&#34; /&gt;<br/> &lt;/appSettings&gt;</div></div><br/>提示provider，直觉应该是没有引入正确的命名空间，果然是没有引入：<div class="UBBPanel codePanel"><div class="UBBTitle"><a onClick="copycode(code26868);" style="float:right;cursor: pointer;font-weight: normal; font-style: normal">复制内容到剪贴板</a><img src="http://www.koodai.com.cn/images/code.gif" style="margin:0px 2px -3px 0px;" alt="程序代码"/> 程序代码</div><div class="UBBContent" id=code26868>using System.Data.ProviderBase;</div></div><br/>编码的时候使用惯了sql的那套，结果，SqlConnection要改作OleDbConnection，还有OleDbCommand和OleDbDataReader等处。真是郁闷！！！不顺手啊~~~<br/><br/>而且<div class="UBBPanel codePanel"><div class="UBBTitle"><a onClick="copycode(code66389);" style="float:right;cursor: pointer;font-weight: normal; font-style: normal">复制内容到剪贴板</a><img src="http://www.koodai.com.cn/images/code.gif" style="margin:0px 2px -3px 0px;" alt="程序代码"/> 程序代码</div><div class="UBBContent" id=code66389>OleDbCommand com = new OleDbCommand(Sql,conn);</div></div>这句中Sql要写成是：<div class="UBBPanel codePanel"><div class="UBBTitle"><a onClick="copycode(code47826);" style="float:right;cursor: pointer;font-weight: normal; font-style: normal">复制内容到剪贴板</a><img src="http://www.koodai.com.cn/images/code.gif" style="margin:0px 2px -3px 0px;" alt="程序代码"/> 程序代码</div><div class="UBBContent" id=code47826>string Sql = string.Format(&#34;sel&#101;ct * from products wh&#101;re id = {0}&#34;, id); </div></div><br/>原来你大可以写成：<div class="UBBPanel codePanel"><div class="UBBTitle"><a onClick="copycode(code30072);" style="float:right;cursor: pointer;font-weight: normal; font-style: normal">复制内容到剪贴板</a><img src="http://www.koodai.com.cn/images/code.gif" style="margin:0px 2px -3px 0px;" alt="程序代码"/> 程序代码</div><div class="UBBContent" id=code30072>String Sql = &#34;sel&#101;ct * from products wh&#101;re id=&#39;&#34; + id +&#34;&#39;&#34;;</div></div>当然前提是要定义id，<div class="UBBPanel codePanel"><div class="UBBTitle"><a onClick="copycode(code56775);" style="float:right;cursor: pointer;font-weight: normal; font-style: normal">复制内容到剪贴板</a><img src="http://www.koodai.com.cn/images/code.gif" style="margin:0px 2px -3px 0px;" alt="程序代码"/> 程序代码</div><div class="UBBContent" id=code56775>public partial class Product : System.Web.UI.Page<br/>{<br/>&nbsp;&nbsp;&nbsp;&nbsp;public string&nbsp;&nbsp;id=null;<br/>&nbsp;&nbsp;&nbsp;&nbsp;protected void Page_Load(object sender, EventArgs e)<br/>&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//定义参数输入量<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;id =&nbsp;&nbsp;Request[&#34;id&#34;].ToString();</div></div><br/>另外还要做好ID的数据合法检查工作哦~<br/><br/>部分代码：<div class="UBBPanel codePanel"><div class="UBBTitle"><a onClick="copycode(code76665);" style="float:right;cursor: pointer;font-weight: normal; font-style: normal">复制内容到剪贴板</a><img src="http://www.koodai.com.cn/images/code.gif" style="margin:0px 2px -3px 0px;" alt="程序代码"/> 程序代码</div><div class="UBBContent" id=code76665>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;id =&nbsp;&nbsp;Request[&#34;id&#34;].ToString();<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//定义数据库连接字符串和sql查询语句<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String connString=System.Configuration.ConfigurationManager.AppSettings[&#34;provider&#34;].ToString() + System.Web.HttpContext.Current.Server.MapPath(ConfigurationManager.AppSettings[&#34;database&#34;]) + &#34;;&#34;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;string Sql = string.Format(&#34;sel&#101;ct * from products wh&#101;re id = {0}&#34;, id); <br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//String Sql = &#34;sel&#101;ct * from products wh&#101;re id=&#39;&#34; + id +&#34;&#39;&#34;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;OleDbConnection conn = new OleDbConnection(connString);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//SqlConnection conn = new SqlConnection(connString);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;conn.Open();<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;OleDbCommand com = new OleDbCommand(Sql,conn);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // SqlCommand com = new SqlCommand(Sql,conn);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//SqlDataReader dr = null;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;OleDbDataReader dr = null;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dr = com.ExecuteReader();<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (dr.Read())<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.t1.Text = dr[&#34;Product&#34;].ToString();<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Response.Write(&#34;cuowu&#34;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dr.Close();<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;conn.Close();&nbsp;&nbsp; </div></div>]]></summary>
	  <link rel="alternate" type="text/html" href="http://www.koodai.com.cn/article/ms-net/asp.net-标准表达式中数据类型不匹配.htm" /> 
	  <id>http://www.koodai.com.cn/default.asp?id=656</id>
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[ASP验证码程序实例]]></title>
	  <author>
		 <name>admin</name>
		 <uri>http://www.koodai.com.cn/</uri>
		 <email>kisscb@126.com</email>
	  </author>
	  <category term="" scheme="http://www.koodai.com.cn/default.asp?cateID=26" label="ms.net" /> 
	  <updated>2009-03-15T02:03:56+08:00</updated>
	  <published>2009-03-15T02:03:56+08:00</published>
		  <summary type="html"><![CDATA[一般验证码的程序原理是这样的：<br/>在会话(Session)中产生一个随机量，然后在需要屏蔽机器人提交暴力破解的地方加入一个文本框(Input box)，在前台使用ajax验证输入是否正确或者在提交表单后在服务器端验证。根据验证结果决定操作是否有效。<br/><br/>一般情况下，客户端的随机量展示不能在源码里，主要是因为html格式的文档要获取固定位置的字符易如反掌。故一般用组件生成图片。<br/><br/>以下内容就是ASP产生验证码的一段很简洁的程序，在验证时将输入值跟Session(&#34;safenum&#34;)比较即可：<br/><div class="UBBPanel codePanel"><div class="UBBTitle"><a onClick="copycode(code71856);" style="float:right;cursor: pointer;font-weight: normal; font-style: normal">复制内容到剪贴板</a><img src="http://www.koodai.com.cn/images/code.gif" style="margin:0px 2px -3px 0px;" alt="程序代码"/> 程序代码</div><div class="UBBContent" id=code71856><br/>&lt;%<br/>Response.Buffer = True<br/>With Response<br/>.Expires = -1<br/>.AddHeader &#34;Pragma&#34;,&#34;no-cache&#34;<br/>.AddHeader &#34;cache-ctrol&#34;,&#34;no-cache&#34;<br/>End With<br/>Dim a(10,10)<br/>a(0,1) = &#34;0x3c&#34; &#39;数字0<br/>a(0,2) = &#34;0x66&#34;<br/>a(0,3) = &#34;0xc3&#34;<br/>a(0,4) = &#34;0xc3&#34;<br/>a(0,5) = &#34;0xc3&#34;<br/>a(0,6) = &#34;0xc3&#34;<br/>a(0,7) = &#34;0xc3&#34;<br/>a(0,8) = &#34;0xc3&#34;<br/>a(0,9) = &#34;0x66&#34;<br/>a(0,10)= &#34;0x3c&#34;<br/><br/>a(1,1) = &#34;0x18&#34; &#39;数字1<br/>a(1,2) = &#34;0x1c&#34;<br/>a(1,3) = &#34;0x18&#34;<br/>a(1,4) = &#34;0x18&#34;<br/>a(1,5) = &#34;0x18&#34;<br/>a(1,6) = &#34;0x18&#34;<br/>a(1,7) = &#34;0x18&#34;<br/>a(1,8) = &#34;0x18&#34;<br/>a(1,9) = &#34;0x18&#34;<br/>a(0,10)= &#34;0x7e&#34;<br/><br/>a(2,1) = &#34;0x3c&#34; &#39;数字2<br/>a(2,2) = &#34;0x66&#34;<br/>a(2,3) = &#34;0x60&#34;<br/>a(2,4) = &#34;0x60&#34;<br/>a(2,5) = &#34;0x30&#34;<br/>a(2,6) = &#34;0x18&#34;<br/>a(2,7) = &#34;0x0c&#34;<br/>a(2,8) = &#34;0x06&#34;<br/>a(2,9) = &#34;0x06&#34;<br/>a(2,10)= &#34;0x7e&#34;<br/><br/>a(3,1) = &#34;0x3c&#34; &#39;数字3<br/>a(3,2) = &#34;0x66&#34;<br/>a(3,3) = &#34;0xc0&#34;<br/>a(3,4) = &#34;0x60&#34;<br/>a(3,5) = &#34;0x1c&#34;<br/>a(3,6) = &#34;0x60&#34;<br/>a(3,7) = &#34;0xc0&#34;<br/>a(3,8) = &#34;0xc0&#34;<br/>a(3,9) = &#34;0x66&#34;<br/>a(3,10)= &#34;0x38&#34;<br/><br/>a(4,1) = &#34;0x38&#34; &#39;数字4<br/>a(4,2) = &#34;0x3c&#34;<br/>a(4,3) = &#34;0x36&#34;<br/>a(4,4) = &#34;0x33&#34;<br/>a(4,5) = &#34;0x33&#34;<br/>a(4,6) = &#34;0x33&#34;<br/>a(4,7) = &#34;0xff&#34;<br/>a(4,8) = &#34;0x30&#34;<br/>a(4,9) = &#34;0x30&#34;<br/>a(4,10)= &#34;0xfe&#34;<br/><br/>a(5,1) = &#34;0xfe&#34; &#39;数字5<br/>a(5,2) = &#34;0xfe&#34;<br/>a(5,3) = &#34;0x06&#34;<br/>a(5,4) = &#34;0x06&#34;<br/>a(5,5) = &#34;0x3e&#34;<br/>a(5,6) = &#34;0x60&#34;<br/>a(5,7) = &#34;0xc0&#34;<br/>a(5,8) = &#34;0xc3&#34;<br/>a(5,9) = &#34;0x66&#34;<br/>a(5,10)= &#34;0x3c&#34;<br/><br/>a(6,1) = &#34;0x60&#34; &#39;数字6<br/>a(6,2) = &#34;0x30&#34;<br/>a(6,3) = &#34;0x18&#34;<br/>a(6,4) = &#34;0x0c&#34;<br/>a(6,5) = &#34;0x3e&#34;<br/>a(6,6) = &#34;0x63&#34;<br/>a(6,7) = &#34;0xc3&#34;<br/>a(6,8) = &#34;0xc3&#34;<br/>a(6,9) = &#34;0x66&#34;<br/>a(6,10) =&#34;0x3c&#34;<br/><br/>a(7,1) = &#34;0xff&#34; &#39;数字7<br/>a(7,2) = &#34;0xc0&#34;<br/>a(7,3) = &#34;0x60&#34;<br/>a(7,4) = &#34;0x30&#34;<br/>a(7,5) = &#34;0x18&#34;<br/>a(7,6) = &#34;0x18&#34;<br/>a(7,7) = &#34;0x18&#34;<br/>a(7,8) = &#34;0x18&#34;<br/>a(7,9) = &#34;0x18&#34;<br/>a(7,10)= &#34;0x18&#34;<br/><br/>a(8,1) = &#34;0x3c&#34; &#39;数字8<br/>a(8,2) = &#34;0x66&#34;<br/>a(8,3) = &#34;0xc3&#34;<br/>a(8,4) = &#34;0x66&#34;<br/>a(8,5) = &#34;0x3c&#34;<br/>a(8,6) = &#34;0x66&#34;<br/>a(8,7) = &#34;0xc3&#34;<br/>a(8,8) = &#34;0xc3&#34;<br/>a(8,9) = &#34;0x66&#34;<br/>a(8,10)= &#34;0x3c&#34;<br/><br/>a(9,1) = &#34;0x3c&#34; &#39;数字9<br/>a(9,2) = &#34;0x66&#34;<br/>a(9,3) = &#34;0xc3&#34;<br/>a(9,4) = &#34;0xc3&#34;<br/>a(9,5) = &#34;0x66&#34;<br/>a(9,6) = &#34;0x3c&#34;<br/>a(9,7) = &#34;0x18&#34;<br/>a(9,8) = &#34;0x0c&#34;<br/>a(9,9) = &#34;0x06&#34;<br/>a(9,10)= &#34;0x03&#34;<br/>Dim num<br/>Randomize<br/>num = Int(7999 * Rnd + 2000)<br/>Session(&#34;safenum&#34;) = num<br/>Dim Image<br/>Dim Width, Height<br/>Dim digtal<br/>Dim Length<br/>Dim sort<br/>Dim hc<br/>Length = 4 <br/>hc = chr(13) &amp; chr(10)<br/>Redim sort(Length)<br/>digital = &#34;&#34;<br/>For I = 1 To Length - Len(num)<br/>digital = digital &amp; &#34;0&#34;<br/>Next<br/>For I = 1 To Len(num)<br/>digital = digital &amp; Mid(num, I, 1)<br/>Next<br/>For I = 1 To Len(digital)<br/>sort(I) = Mid(digital, I, 1)<br/>Next<br/>Width = 8 * Len(digital)<br/>Height = 10<br/>Response.ContentType = &#34;image/x-xbitmap&#34;<br/>Image = &#34;#define counter_width &#34; &amp; Width &amp; hc<br/>Image = Image &amp; &#34;#define counter_height &#34; &amp; Height &amp; hc<br/>Image = Image &amp; &#34;static unsigned char counter_bits[] = {&#34; &amp; hc<br/>For I = 1 To Height<br/>For J = 1 To Length<br/>Image = Image &amp; a(sort(J),I) &amp; &#34;,&#34;<br/>Next<br/>Next<br/>Image = Left(Image, Len(Image) - 1)<br/>Image = Image &amp; &#34;};&#34; &amp; hc<br/>Response.Write Image<br/>%&gt;<br/><br/></div></div>]]></summary>
	  <link rel="alternate" type="text/html" href="http://www.koodai.com.cn/article/ms-net/Asp-VerifyCode.htm" /> 
	  <id>http://www.koodai.com.cn/default.asp?id=653</id>
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[asp中利用数组实现数据库记录的批量录入方法 ]]></title>
	  <author>
		 <name>admin</name>
		 <uri>http://www.koodai.com.cn/</uri>
		 <email>kisscb@126.com</email>
	  </author>
	  <category term="" scheme="http://www.koodai.com.cn/default.asp?cateID=26" label="ms.net" /> 
	  <updated>2008-10-16T16:25:47+08:00</updated>
	  <published>2008-10-16T16:25:47+08:00</published>
		  <summary type="html"><![CDATA[<p>两个方案，都写的不错，第一个更为实用些，涉及到了表单的动态设计，第二个写的也好，看看：</p>
<hr />
<p>包括两个文件<br />
1。allneeddj.asp：实现表单的生成<br />
2.&nbsp;allneeddjresult.asp&nbsp;处理表单批量录入<br />
3.hbedu.mdb&nbsp;:数据库文件<br />
其数据库结构如下<br />
provinceid:省份编号&nbsp;数值型<br />
dytaocount:打样套数&nbsp;数值型<br />
papertaocount:纸样套数&nbsp;数值型<br />
cpcontent:出片内容&nbsp;数值型<br />
filename:文件名&nbsp;文本型<br />
beizhu:备注&nbsp;备注型<br />
<br />
本例子中以10条记录，每条记录6个字段说明.<br />
<br />
1。allneeddj.asp<br />
<br />
&lt;html&gt;<br />
<br />
&lt;head&gt;<br />
&lt;meta&nbsp;http-equiv=&quot;Content-Language&quot;&nbsp;content=&quot;zh-cn&quot;&gt;<br />
&lt;meta&nbsp;http-equiv=&quot;Content-Type&quot;&nbsp;content=&quot;text/html;&nbsp;charset=gb2312&quot;&gt;<br />
&lt;meta&nbsp;name=&quot;GENERATOR&quot;&nbsp;content=&quot;Microsoft&nbsp;FrontPage&nbsp;4.0&quot;&gt;<br />
&lt;meta&nbsp;name=&quot;ProgId&quot;&nbsp;content=&quot;FrontPage.Editor.Document&quot;&gt;<br />
&lt;title&gt;需求登记&lt;/title&gt;<br />
&lt;/head&gt;<br />
<br />
&lt;body&gt;<br />
&lt;%<br />
set&nbsp;conn=server.createobject(&quot;adodb.connection&quot;)<br />
conn.Open&nbsp;&quot;driver={Microsoft&nbsp;Access&nbsp;Driver&nbsp;(*.mdb)};dbq=&quot;&nbsp;&amp;&nbsp;_<br />
Server.MapPath(&quot;hbedu.mdb&quot;)<br />
%&gt;<br />
&lt;form&nbsp;method=&quot;POST&quot;&nbsp;action=&quot;allneeddjresult.asp&quot;&gt;<br />
&lt;table&nbsp;border=&quot;1&quot;&nbsp;width=&quot;700&quot;&nbsp;bordercolorlight=&quot;#FFFFFF&quot;&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;tr&nbsp;align=&quot;center&quot;&gt;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;td&nbsp;width=&quot;660&quot;&nbsp;colspan=&quot;6&quot;&gt;需求登记&lt;/td&gt;<br />
&lt;/tr&gt;<br />
&lt;tr&gt;<br />
&lt;td&nbsp;width=&quot;54&quot;&nbsp;align=&quot;center&quot;&gt;省份&lt;/td&gt;<br />
&lt;td&nbsp;width=&quot;66&quot;&nbsp;align=&quot;center&quot;&gt;打样张数&lt;/td&gt;<br />
&lt;td&nbsp;width=&quot;66&quot;&nbsp;align=&quot;center&quot;&gt;纸样张数&lt;/td&gt;<br />
&lt;td&nbsp;width=&quot;66&quot;&nbsp;align=&quot;center&quot;&gt;出片内容&lt;/td&gt;<br />
&lt;td&nbsp;width=&quot;80&quot;&nbsp;align=&quot;center&quot;&gt;文件名&lt;/td&gt;<br />
&lt;td&nbsp;width=&quot;328&quot;&nbsp;align=&quot;center&quot;&gt;备注&lt;/td&gt;<br />
&lt;/tr&gt;<br />
&lt;%<br />
rem&nbsp;通过循环动态生成不同名称表单域<br />
for&nbsp;i=1&nbsp;to&nbsp;10&nbsp;<br />
%&gt;<br />
&lt;%<br />
set&nbsp;rs=server.createobject(&quot;adodb.recordset&quot;)<br />
sql=&quot;select&nbsp;*&nbsp;from&nbsp;provinceinfo&nbsp;&quot;<br />
rs.open&nbsp;sql,conn,1,1<br />
<br />
<br />
<br />
<br />
set&nbsp;rs1=server.createobject(&quot;adodb.recordset&quot;)<br />
sql1=&quot;select&nbsp;*&nbsp;from&nbsp;filename&nbsp;&quot;<br />
rs1.open&nbsp;sql1,conn,1,1<br />
%&gt;<br />
&lt;tr&gt;<br />
&lt;td&nbsp;width=&quot;54&quot;&gt;&lt;select&nbsp;name=&quot;&lt;%&nbsp;response.write&quot;data1&quot;&amp;i&nbsp;%&gt;&quot;&nbsp;size=&quot;1&quot;&gt;<br />
&lt;%<br />
do&nbsp;while&nbsp;not&nbsp;rs.eof<br />
if&nbsp;province=cstr(rs(&quot;id&quot;))&nbsp;then<br />
sel=&quot;selected&quot;<br />
else<br />
sel=&quot;&quot;<br />
end&nbsp;if&nbsp;<br />
response.write&nbsp;&quot;&lt;option&nbsp;&quot;&nbsp;&amp;&nbsp;sel&nbsp;&amp;&nbsp;&quot;&nbsp;value='&quot;+CStr(rs(&quot;id&quot;))+&quot;'&gt;&quot;+rs(&quot;province&quot;)+&quot;&lt;/option&gt;&quot;+chr(13)+chr(10)<br />
rs.movenext<br />
loop<br />
set&nbsp;rs=nothing<br />
%&gt;&nbsp;&lt;/select&gt;&lt;/td&gt;<br />
&lt;td&nbsp;width=&quot;66&quot;&gt;&lt;input&nbsp;type=&quot;text&quot;&nbsp;name=&quot;&lt;%&nbsp;response.write&quot;data2&quot;&amp;i&nbsp;%&gt;&quot;&nbsp;size=&quot;8&quot;&gt;&lt;/td&gt;<br />
&lt;td&nbsp;width=&quot;66&quot;&gt;&lt;input&nbsp;type=&quot;text&quot;&nbsp;name=&quot;&lt;%&nbsp;response.write&quot;data3&quot;&amp;i&nbsp;%&gt;&quot;&nbsp;size=&quot;8&quot;&gt;&lt;/td&gt;<br />
&lt;td&nbsp;width=&quot;66&quot;&gt;&lt;select&nbsp;size=&quot;1&quot;&nbsp;name=&quot;&lt;%&nbsp;response.write&quot;data4&quot;&amp;i&nbsp;%&gt;&quot;&gt;<br />
&lt;option&nbsp;value=&quot;1&quot;&gt;改动部分&lt;/option&gt;<br />
&lt;option&nbsp;value=&quot;2&quot;&gt;全部内容&lt;/option&gt;<br />
&lt;/select&gt;&lt;/td&gt;<br />
&lt;td&nbsp;width=&quot;80&quot;&gt;&lt;select&nbsp;name=&quot;&lt;%&nbsp;response.write&quot;data5&quot;&amp;i&nbsp;%&gt;&quot;&nbsp;size=&quot;1&quot;&gt;<br />
&lt;%<br />
do&nbsp;while&nbsp;not&nbsp;rs1.eof<br />
if&nbsp;filename=cstr(rs1(&quot;filename&quot;))&nbsp;then<br />
sel=&quot;selected&quot;<br />
else<br />
sel=&quot;&quot;<br />
end&nbsp;if&nbsp;<br />
response.write&nbsp;&quot;&lt;option&nbsp;&quot;&nbsp;&amp;&nbsp;sel&nbsp;&amp;&nbsp;&quot;&nbsp;value='&quot;+CStr(rs1(&quot;filename&quot;))+&quot;'&gt;&quot;+rs1(&quot;filename&quot;)+&quot;&lt;/option&gt;&quot;+chr(13)+chr(10)<br />
rs1.movenext<br />
loop<br />
<br />
set&nbsp;rs1=nothing<br />
%&gt;&nbsp;&lt;/select&gt;　&lt;/td&gt;<br />
&lt;td&nbsp;width=&quot;328&quot;&gt;&lt;textarea&nbsp;rows=&quot;2&quot;&nbsp;name=&quot;&lt;%&nbsp;response.write&quot;data6&quot;&amp;i&nbsp;%&gt;&quot;&nbsp;cols=&quot;46&quot;&gt;&lt;/textarea&gt;&lt;/td&gt;<br />
&lt;/tr&gt;<br />
&lt;%&nbsp;next&nbsp;%&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;tr&nbsp;align=&quot;center&quot;&gt;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;td&nbsp;width=&quot;660&quot;&nbsp;colspan=&quot;6&quot;&gt;<br />
&lt;input&nbsp;type=&quot;submit&quot;&nbsp;value=&quot;提交&quot;&nbsp;name=&quot;B1&quot;&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/td&gt;<br />
&lt;/tr&gt;<br />
&lt;/table&gt;<br />
&lt;/form&gt;<br />
<br />
&lt;/body&gt;<br />
<br />
&lt;/html&gt;<br />
<br />
2.allneeddjresult.asp<br />
<br />
&lt;%<br />
rem&nbsp;定义二维数组存放从表单获取的值<br />
dim&nbsp;data(10,6)<br />
for&nbsp;i=&nbsp;1&nbsp;to&nbsp;6<br />
for&nbsp;j=&nbsp;1&nbsp;to&nbsp;10<br />
mydata=&quot;data&quot;+cstr(i)+cstr(j)<br />
data(j,i)=request.form(mydata)<br />
next<br />
next<br />
%&gt;<br />
<br />
&lt;%<br />
rem&nbsp;输出表单输入的值<br />
for&nbsp;i=&nbsp;1&nbsp;to&nbsp;10<br />
for&nbsp;j=&nbsp;1&nbsp;to&nbsp;6<br />
response.write&nbsp;data(i,j)<br />
next<br />
response.write&quot;&quot;<br />
next<br />
'response.end<br />
%&gt;<br />
&lt;%&nbsp;<br />
dim&nbsp;conn,rs<br />
Set&nbsp;conn&nbsp;=&nbsp;Server.CreateObject(&quot;ADODB.Connection&quot;)<br />
conn.Open&nbsp;&quot;driver={Microsoft&nbsp;Access&nbsp;Driver&nbsp;(*.mdb)};dbq=&quot;&nbsp;&amp;&nbsp;_<br />
Server.MapPath(&quot;hbedu.mdb&quot;)<br />
<br />
<br />
for&nbsp;i=&nbsp;1&nbsp;to&nbsp;10<br />
rem&nbsp;循环批量入库<br />
<br />
Set&nbsp;rs=SERVER.CreateObject(&quot;ADODB.Recordset&quot;)<br />
rs.Open&nbsp;&quot;hbedu&quot;,conn,1,3<br />
rs.AddNew<br />
rs(&quot;beizhu&quot;)=data(i,6)<br />
rs(&quot;filename&quot;)=data(i,5)<br />
rs(&quot;cpcontent&quot;)=data(i,4)<br />
rs(&quot;papertaocount&quot;)=data(i,3)<br />
rs(&quot;dytaocount&quot;)=data(i,2)<br />
rs(&quot;provinceid&quot;)=data(i,1)<br />
rs.Update<br />
rs.close<br />
set&nbsp;rs=nothing<br />
response.write&quot;ok&quot;<br />
next<br />
%&gt;<br />
&nbsp;</p>
<hr />
<p>批量录入在数据库的应用中比较广泛的，关于批量录入的方法也有好多种。<br />
　　下面我就结合我实际中的应用，谈一下儿我是怎么实现的。<br />
　　主要用到的是form的集合的概念，通过循环取的所有的集合内数据。<br />
　　考虑到大家看着方便，我把它集成到了一个页面。<br />
　　下面是具体的代码：<br />
batchInput.asp<br />
&lt;%<br />
'#####################################<br />
'File Function:批量录入数据<br />
'Author:Myhon<br />
'Date:2003-8-19<br />
'#####################################</p>
<p>'向数据库写入数据<br />
SUB writeData()<br />
dim recCnt,i<br />
dim fieldName1,fieldName2,fieldName3<br />
dim conn<br />
dim sqlStr,connStr<br />
connStr=&quot;Provider=SQLOLEDB.1;Initial Catalog=myDatabase;Data Source=myhon;User Id=sa;PASSWORD=&quot;<br />
set conn=Server.CreateObject(&quot;ADODB.Connection&quot;)<br />
conn.open connStr '建立数据库连接</p>
<p>recCnt=request.form(&quot;stu_num&quot;).count '取得共有多少条记录<br />
'批量录入数据<br />
for i=1 to recCnt<br />
fieldName1=trim(request.form(&quot;fieldName1&quot;)(i))<br />
fieldName2=trim(request.form(&quot;fieldName2&quot;)(i))<br />
fieldName3=trim(request.form(&quot;fieldName3&quot;)(i))<br />
sqlStr=&quot;insert into myTable(fieldName1,fieldName2,fieldName3) values('&quot;<br />
sqlStr=sqlStr &amp; fieldName1 &amp; &quot;','&quot;<br />
sqlStr=sqlStr &amp; fieldName2 &amp; &quot;','&quot;<br />
sqlStr=sqlStr &amp; fieldName3 &amp; &quot;')&quot;<br />
'response.write sqlStr<br />
conn.execute(sqlStr)<br />
next<br />
END SUB</p>
<p>'显示成批录入的界面<br />
SUB InputData()<br />
dim recCnt,i<br />
%&gt;<br />
&lt;form name=&quot;bathInputData&quot; action=&quot;&quot; method=&quot;post&quot;&gt;<br />
&lt;% <br />
recCnt=cint(request.form(&quot;recCnt&quot;))<br />
for i=1 to recCnt<br />
%&gt;<br />
&lt;input type=&quot;text&quot; name=&quot;fieldName1&quot;&gt;<br />
&lt;input type=&quot;text&quot; name=&quot;fieldName2&quot;&gt;<br />
&lt;input type=&quot;text&quot; name=&quot;fieldName3&quot;&gt;<br />
&lt;%<br />
next<br />
%&gt;<br />
&lt;br&gt;<br />
&lt;input type=&quot;submit&quot; name=&quot;action&quot; value=&quot;提交&quot;&gt;<br />
&lt;/form&gt;<br />
&lt;%<br />
END SUB</p>
<p>'指定要批量录入多少条记录<br />
SUB assignHowMuch()<br />
%&gt;</p>
<p>&lt;!------指定要录入多少条记录--------------&gt;<br />
&lt;form name=&quot;form1&quot; action=&quot;&quot; method=&quot;post&quot;&gt;<br />
您要录入的记录的条数：&lt;input type=&quot;text&quot; name=&quot;recCnt&quot;&gt;<br />
&lt;input type=&quot;submit&quot; name=&quot;action&quot; value=&quot;下一步&gt;&gt;&quot;&gt;<br />
&lt;/form&gt;<br />
&lt;%<br />
END SUB</p>
<p>if request.form(&quot;action&quot;)=&quot;下一步&gt;&gt;&quot; then<br />
Call InputData() '显示成批录入界面<br />
elseif request.form(&quot;action&quot;)=&quot;提交&quot; then Call writeData() '向数据库批量写入数据<br />
else<br />
Call assignHowMuch() '显示指定录入多少条记录的界面<br />
end if <br />
%&gt;</p>]]></summary>
	  <link rel="alternate" type="text/html" href="http://www.koodai.com.cn/article/ms-net/594.html" /> 
	  <id>http://www.koodai.com.cn/default.asp?id=594</id>
  </entry>	
		
</feed>
