<?xml version="1.0" encoding="gb2312"?>
<rss version="2.0">
<channel>
<title>家·博客</title>
<link>http://www.jiablog.com/</link>
<description>博客,免费博客,博客申请,家博客,家庭博客,家,婚姻,家教,青少年,老年,中年,爱情,族谱</description>
<generator>Oblog 3.0</generator>
<webMaster>kicker0609@163.com</webMaster>
<item>
<title><![CDATA[VB QP编码]]></title>
<link>http://www.jiablog.com/user1/myfamily/archives/2008/2690.html</link>
<author>myfamily</author>
<pubDate>2008-4-1 14:01:39</pubDate>
<description><![CDATA[<P>'转载<A href="http://cyinger-smiling.blogbus.com/logs/5672032.html"><FONT color=#ff9900>http://cyinger-smiling.blogbus.com/logs/5672032.html</FONT></A><BR></P>
<P>Private Function QpDecode(inString As String) As String&nbsp;&nbsp;</P>
<P>&nbsp; Dim myB&nbsp;&nbsp;&nbsp;&nbsp; As Byte<BR>&nbsp; Dim myByte1&nbsp;&nbsp;&nbsp;&nbsp; As Byte, myByte2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; As Byte<BR>&nbsp; Dim convStr()&nbsp;&nbsp;&nbsp;&nbsp; As Byte<BR>&nbsp; Dim mOutByte&nbsp;&nbsp;&nbsp;&nbsp; As Byte<BR>&nbsp; Dim FinishPercent&nbsp;&nbsp;&nbsp;&nbsp; As Long<BR>&nbsp; Dim TotalB, k&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; As Long<BR>&nbsp; Dim tmpByte&nbsp;&nbsp;&nbsp;&nbsp; As Byte<BR>&nbsp;&nbsp;&nbsp; <BR>&nbsp; convStr = StrConv(inString, vbFromUnicode)<BR>&nbsp;&nbsp;&nbsp; <BR>&nbsp; TotalB = UBound(convStr)<BR>&nbsp; For k = 0 To TotalB<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; myB = convStr(k)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If myB = Asc("=") Then<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; k = k + 1<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; myByte1 = convStr(k)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If myByte1 = &amp;HA Then<BR>&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; '如果是回车,继续<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Else<BR>&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; '取第二个字节<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; k = k + 1<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; myByte2 = convStr(k)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Call DecodeByte(myByte1, myByte2, mOutByte)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If mOutByte &gt;= 127 Then<BR>&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; If tmpByte &lt;&gt; 0 Then<BR>&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; QpDecode = QpDecode &amp; Chr(Val("&amp;H" &amp; Hex(tmpByte) &amp; Hex(mOutByte)))<BR>&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tmpByte = 0<BR>&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; Else<BR>&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tmpByte = mOutByte<BR>&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; End If<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Else<BR>&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; QpDecode = QpDecode &amp; Chr(mOutByte)<BR>&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; tmpByte = 0<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; End If<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; End If<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Else<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mOutByte = myB<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; QpDecode = QpDecode &amp; Chr(mOutByte)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; End If<BR>&nbsp; Next<BR>&nbsp; End Function<BR>&nbsp; Private Sub DecodeByte(mInByte1 As Byte, mInByte2 As Byte, mOutByte As Byte)<BR>&nbsp; Dim tbyte1&nbsp;&nbsp;&nbsp;&nbsp; As Integer, tbyte2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; As Integer<BR>&nbsp; If mInByte1 &gt; Asc("9") Then<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tbyte1 = mInByte1 - Asc("A") + 10<BR>&nbsp; Else<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tbyte1 = mInByte1 - Asc("0")<BR>&nbsp; End If<BR>&nbsp; If mInByte2 &gt; Asc("9") Then<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tbyte2 = mInByte2 - Asc("A") + 10<BR>&nbsp; Else<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tbyte2 = mInByte2 - Asc("0")<BR>&nbsp; End If<BR>&nbsp; mOutByte = tbyte1 * 16 + tbyte2<BR>&nbsp; End Sub<BR>&nbsp;&nbsp;&nbsp; <BR>&nbsp; Private Sub EncodeByte(mInByte As Byte, mOutStr As String)<BR>&nbsp; If (mInByte &gt;= 33 And mInByte &lt;= 60) Or (mInByte &gt;= 62 And mInByte &lt;= 126) Then<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mOutStr = Chr(mInByte)<BR>&nbsp; Else<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If mInByte &lt;= &amp;HF Then<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mOutStr = "=0" &amp; Hex(mInByte)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Else<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mOutStr = "=" &amp; Hex(mInByte)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; End If<BR>&nbsp; End If<BR>End Sub</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<SPAN style="FONT-SIZE: 12pt; LINE-HEIGHT: 125%; FONT-FAMILY: 宋体">QP</SPAN><SPAN style="FONT-SIZE: 12pt; LINE-HEIGHT: 125%; FONT-FAMILY: 宋体">编码的规则是，对于信息中的<SPAN>7</SPAN>位字符不作重新编码，而是仅将<SPAN>8</SPAN>位的数据转成<SPAN>7</SPAN>位即可。我们可以看到，<SPAN>QP</SPAN>编码是字符对应的编码，每个未编码的二进制字符都会被编码成<SPAN>3</SPAN>个字符，即一个等号加上两个该字符的<SPAN>16</SPAN>进制值，如<SPAN>“=A8”</SPAN>，但这样的编码数为<SPAN>1:3</SPAN>，所以编码效率相对于其它编码方式而言相当低。但不可否认的是，这种编码方法非常简单，特别适合那些数据大多数是<SPAN>7</SPAN>位的<SPAN>ASCII</SPAN>码文本、偶尔插入<SPAN>8</SPAN>位字符的情况，但遗憾的是对汉字编码效果不够好，因为每个双字节汉字经过编码后会变成<SPAN>6</SPAN>个字节。具体规则如下：</SPAN></P>
<P><SPAN style="FONT-SIZE: 12pt; LINE-HEIGHT: 125%; FONT-FAMILY: 宋体">&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="FONT-SIZE: 12pt; LINE-HEIGHT: 125%; FONT-FAMILY: 宋体">①</SPAN><SPAN style="FONT-SIZE: 12pt; LINE-HEIGHT: 125%; FONT-FAMILY: 宋体">将一个字元用两个十六进制数表示，然后前面再加上一个「<SPAN>=</SPAN>」（等号）字元；除非这个字元符合下面其他的规则。比如原先<SPAN> ASCII </SPAN>的「<SPAN>=</SPAN>」（等号）字元，其十进制数值是<SPAN> 61</SPAN>，十六进制数值为<SPAN> 3D</SPAN>，所以经过<SPAN> QP </SPAN>编码后，变成了「<SPAN>=3D</SPAN>」。</SPAN></P>
<P><SPAN style="FONT-SIZE: 12pt; LINE-HEIGHT: 125%; FONT-FAMILY: 宋体">&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="FONT-SIZE: 12pt; LINE-HEIGHT: 125%; FONT-FAMILY: 宋体">②</SPAN><SPAN style="FONT-SIZE: 12pt; LINE-HEIGHT: 125%; FONT-FAMILY: 宋体">字元的数值（十进制数）介于<SPAN> 33 </SPAN>到<SPAN> 60</SPAN>、及<SPAN> 62 </SPAN>到<SPAN> 126 </SPAN>者不必经过编码。（<SPAN>61 </SPAN>是「等号」）</SPAN></P>
<P><SPAN style="FONT-SIZE: 12pt; LINE-HEIGHT: 125%; FONT-FAMILY: 宋体">&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="FONT-SIZE: 12pt; LINE-HEIGHT: 125%; FONT-FAMILY: 宋体">③</SPAN><SPAN style="FONT-SIZE: 12pt; LINE-HEIGHT: 125%; FONT-FAMILY: 宋体">字元<SPAN> TAB </SPAN>或<SPAN> SPACE </SPAN>可以不经编码，但是不经编码的<SPAN> TAB </SPAN>或<SPAN>SPACE </SPAN>不可以放在编码后每行字串的末尾；也就是說编码后的內容，一行字串中如果有<SPAN> TAB </SPAN>或<SPAN> SPACE </SPAN>的話，其后面一定还有其它的字元。</SPAN></P><SPAN style="FONT-SIZE: 12pt; LINE-HEIGHT: 125%; FONT-FAMILY: 宋体"><SPAN style="FONT-SIZE: 12pt; LINE-HEIGHT: 125%; FONT-FAMILY: 宋体">QP</SPAN><SPAN style="FONT-SIZE: 12pt; LINE-HEIGHT: 125%; FONT-FAMILY: 宋体">解码只是编码的逆过程，</SPAN><SPAN style="FONT-SIZE: 12pt; LINE-HEIGHT: 125%; FONT-FAMILY: 宋体">计算出每个等号后的两个十六进制字符所代表的数值进行解码，对于码值小于</SPAN><SPAN style="FONT-SIZE: 12pt; LINE-HEIGHT: 125%"><FONT face="Times New Roman">128</FONT></SPAN><SPAN style="FONT-SIZE: 12pt; LINE-HEIGHT: 125%; FONT-FAMILY: 宋体">的，单字节表示一个字符；大于</SPAN><SPAN style="FONT-SIZE: 12pt; LINE-HEIGHT: 125%"><FONT face="Times New Roman">128</FONT></SPAN><SPAN style="FONT-SIZE: 12pt; LINE-HEIGHT: 125%; FONT-FAMILY: 宋体">的，双字节表示一个字符。</SPAN><SPAN style="FONT-SIZE: 12pt; LINE-HEIGHT: 125%; FONT-FAMILY: 宋体">下面举例分析。<SPAN></SPAN></SPAN><SPAN style="FONT-SIZE: 12pt; LINE-HEIGHT: 125%; FONT-FAMILY: 宋体">例如：编码后的字符串为<SPAN>=C4=E3=BA=C3</SPAN>，解码后对应字符串为“你好”。<SPAN></SPAN></SPAN><SPAN style="FONT-SIZE: 12pt; LINE-HEIGHT: 125%; FONT-FAMILY: 宋体">表<SPAN>3.3.3</SPAN><SPAN>-2: QP</SPAN>解码示例</SPAN><SPAN style="FONT-SIZE: 12pt; LINE-HEIGHT: 125%; FONT-FAMILY: 宋体"></SPAN> 
<TABLE class=MsoTableGrid style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; MARGIN: auto auto auto 24pt; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none; BORDER-COLLAPSE: collapse" cellSpacing=0 cellPadding=0 border=1>
<TBODY>
<TR>
<TD style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 1pt solid; WIDTH: 96.4pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=129>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 125%"><SPAN style="FONT-SIZE: 12pt; LINE-HEIGHT: 125%; FONT-FAMILY: 宋体">十六进制值<SPAN></SPAN></SPAN></P></TD>
<TD style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #ebe9ed; PADDING-BOTTOM: 0cm; WIDTH: 25.3pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=34><SPAN style="FONT-SIZE: 12pt; LINE-HEIGHT: 125%; FONT-FAMILY: 宋体">=</SPAN></TD>
<TD style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #ebe9ed; PADDING-BOTTOM: 0cm; WIDTH: 24.7pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=33><SPAN style="FONT-SIZE: 12pt; LINE-HEIGHT: 125%; FONT-FAMILY: 宋体">C</SPAN></TD>
<TD style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #ebe9ed; PADDING-BOTTOM: 0cm; WIDTH: 26.8pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=36><SPAN style="FONT-SIZE: 12pt; LINE-HEIGHT: 125%; FONT-FAMILY: 宋体">4</SPAN></TD>
<TD style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #ebe9ed; PADDING-BOTTOM: 0cm; WIDTH: 23.5pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=31><SPAN style="FONT-SIZE: 12pt; LINE-HEIGHT: 125%; FONT-FAMILY: 宋体">=</SPAN></TD>
<TD style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #ebe9ed; PADDING-BOTTOM: 0cm; WIDTH: 26.55pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=35><SPAN style="FONT-SIZE: 12pt; LINE-HEIGHT: 125%; FONT-FAMILY: 宋体">E</SPAN></TD>
<TD style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #ebe9ed; PADDING-BOTTOM: 0cm; WIDTH: 32.65pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=44><SPAN style="FONT-SIZE: 12pt; LINE-HEIGHT: 125%; FONT-FAMILY: 宋体">3</SPAN></TD>
<TD style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #ebe9ed; PADDING-BOTTOM: 0cm; WIDTH: 25.8pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=34><SPAN style="FONT-SIZE: 12pt; LINE-HEIGHT: 125%; FONT-FAMILY: 宋体">=</SPAN></TD>
<TD style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #ebe9ed; PADDING-BOTTOM: 0cm; WIDTH: 23.85pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=32><SPAN style="FONT-SIZE: 12pt; LINE-HEIGHT: 125%; FONT-FAMILY: 宋体">B</SPAN></TD>
<TD style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #ebe9ed; PADDING-BOTTOM: 0cm; WIDTH: 32.65pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=44><SPAN style="FONT-SIZE: 12pt; LINE-HEIGHT: 125%; FONT-FAMILY: 宋体">A</SPAN></TD>
<TD style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #ebe9ed; PADDING-BOTTOM: 0cm; WIDTH: 23.2pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=31><SPAN style="FONT-SIZE: 12pt; LINE-HEIGHT: 125%; FONT-FAMILY: 宋体">=</SPAN></TD>
<TD style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #ebe9ed; PADDING-BOTTOM: 0cm; WIDTH: 26.45pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=35><SPAN style="FONT-SIZE: 12pt; LINE-HEIGHT: 125%; FONT-FAMILY: 宋体">C</SPAN></TD>
<TD style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #ebe9ed; PADDING-BOTTOM: 0cm; WIDTH: 23.55pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=31><SPAN style="FONT-SIZE: 12pt; LINE-HEIGHT: 125%; FONT-FAMILY: 宋体">3</SPAN></TD></TR>
<TR>
<TD style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 1pt solid; WIDTH: 96.4pt; BORDER-TOP-COLOR: #ebe9ed; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=129><SPAN style="FONT-SIZE: 12pt; LINE-HEIGHT: 125%; FONT-FAMILY: 宋体">解码（十进制值）<SPAN></SPAN></SPAN></TD>
<TD style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #ebe9ed; PADDING-BOTTOM: 0cm; WIDTH: 76.8pt; BORDER-TOP-COLOR: #ebe9ed; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=102 colSpan=3><SPAN style="FONT-SIZE: 12pt; LINE-HEIGHT: 125%; FONT-FAMILY: 宋体">196</SPAN></TD>
<TD style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #ebe9ed; PADDING-BOTTOM: 0cm; WIDTH: 82.7pt; BORDER-TOP-COLOR: #ebe9ed; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=110 colSpan=3><SPAN style="FONT-SIZE: 12pt; LINE-HEIGHT: 125%; FONT-FAMILY: 宋体">227</SPAN></TD>
<TD style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #ebe9ed; PADDING-BOTTOM: 0cm; WIDTH: 82.3pt; BORDER-TOP-COLOR: #ebe9ed; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=110 colSpan=3><SPAN style="FONT-SIZE: 12pt; LINE-HEIGHT: 125%; FONT-FAMILY: 宋体">186</SPAN></TD>
<TD style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #ebe9ed; PADDING-BOTTOM: 0cm; WIDTH: 73.2pt; BORDER-TOP-COLOR: #ebe9ed; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=98 colSpan=3><SPAN style="FONT-SIZE: 12pt; LINE-HEIGHT: 125%; FONT-FAMILY: 宋体">195</SPAN></TD></TR>
<TR>
<TD style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 1pt solid; WIDTH: 96.4pt; BORDER-TOP-COLOR: #ebe9ed; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=129><SPAN style="FONT-SIZE: 12pt; LINE-HEIGHT: 125%; FONT-FAMILY: 宋体">解码（二进制值）<SPAN></SPAN></SPAN></TD>
<TD style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #ebe9ed; PADDING-BOTTOM: 0cm; WIDTH: 159.5pt; BORDER-TOP-COLOR: #ebe9ed; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=213 colSpan=6><SPAN style="FONT-SIZE: 12pt; LINE-HEIGHT: 125%; FONT-FAMILY: 宋体">11000100 11100011</SPAN></TD>
<TD style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #ebe9ed; PADDING-BOTTOM: 0cm; WIDTH: 155.5pt; BORDER-TOP-COLOR: #ebe9ed; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=207 colSpan=6><SPAN style="FONT-SIZE: 12pt; LINE-HEIGHT: 125%; FONT-FAMILY: 宋体">10111010 11000011</SPAN></TD></TR>
<TR>
<TD style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 1pt solid; WIDTH: 96.4pt; BORDER-TOP-COLOR: #ebe9ed; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=129><SPAN style="FONT-SIZE: 12pt; LINE-HEIGHT: 125%; FONT-FAMILY: 宋体">原字符<SPAN></SPAN></SPAN></TD>
<TD style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #ebe9ed; PADDING-BOTTOM: 0cm; WIDTH: 159.5pt; BORDER-TOP-COLOR: #ebe9ed; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=213 colSpan=6><SPAN style="FONT-SIZE: 12pt; LINE-HEIGHT: 125%; FONT-FAMILY: 宋体">你<SPAN></SPAN></SPAN></TD>
<TD style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #ebe9ed; PADDING-BOTTOM: 0cm; WIDTH: 155.5pt; BORDER-TOP-COLOR: #ebe9ed; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=207 colSpan=6><SPAN style="FONT-SIZE: 12pt; LINE-HEIGHT: 125%; FONT-FAMILY: 宋体">好<SPAN></SPAN></SPAN></TD></TR></TBODY></TABLE>
<P class=MsoNormal style="BACKGROUND: white; MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 34.9pt; LINE-HEIGHT: 125%">&nbsp;</P>
<P class=22 style="MARGIN: 0cm 0cm 0pt"><SPAN>　　以上两个函数分析如下：</SPAN></P>
<P class=22 style="MARGIN: 0cm 0cm 0pt"><SPAN>　　DecodeByte</SPAN>（）函数是私有函数，对<SPAN>QP</SPAN>编码后的每组（以等号分割的每两个字节一组）信息进行<SPAN>QP</SPAN>解码，即计算这两个十六进制字符所代表的数值。当<SPAN>ASCII</SPAN>码小于“<SPAN>9</SPAN>”的<SPAN>ASCII</SPAN>码时，则减去“<SPAN>0</SPAN>”的<SPAN>ASCII</SPAN>码值（这是因为，当字符小于<SPAN>9</SPAN>时为了使编码位数一致，除在其前加“<SPAN>=</SPAN>”外还加了“<SPAN>0</SPAN>”）；如果大于则减去“<SPAN>A</SPAN>”的<SPAN>ASCII</SPAN>码值再加<SPAN>10</SPAN>，即得到此位对应的十进制值，如“<SPAN>B</SPAN>”对应十进制值<SPAN>11</SPAN>。然后通过高字节<SPAN>*16+</SPAN>低字节得到解码数值。</P>
<P class=22 style="MARGIN: 0cm 0cm 0pt"><SPAN>　　QpDecode</SPAN>（）函数是私有函数，先用<SPAN>StrConv</SPAN>函数将<SPAN>QP</SPAN>编码后的字符串信息由<SPAN>Unicode</SPAN>转成系统的缺省码，然后将其分组（以等号分割，每两个字节一组）后调用<SPAN>DecodeByte</SPAN>（）函数进行<SPAN>QP</SPAN>解码。第一个等号前及最后一个等号后三位起的字符不作<SPAN>QP</SPAN>解码（直接是<SPAN>ASCII</SPAN>编码）。对于<SPAN>DecodeByte</SPAN>（）返回<SPAN>值小于<SPAN>128</SPAN>的（单字节字符）单字节表示一个字符，大于<SPAN>128</SPAN>（双字节字符）的两个字节表示一个字符。</SPAN></P>
<P class=22 style="MARGIN: 0cm 0cm 0pt"><SPAN></SPAN>&nbsp;</P><SPAN>
<DIV class=cmtBody><FONT color=#ff0000>上面的解码是有问题的，对于一个扩展ASCII码，其值是大于127的，但它不是双字节，依然是一个字节，上面的解码函数不够全面！</FONT></DIV></SPAN></SPAN>]]></description>
</item><item>
<title><![CDATA[VB的BASE64 编码解码]]></title>
<link>http://www.jiablog.com/user1/myfamily/archives/2008/2689.html</link>
<author>myfamily</author>
<pubDate>2008-4-1 11:45:23</pubDate>
<description><![CDATA[<P>Option Explicit<BR>Private Const cstBase64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"<BR>Private arrBase64() As String</P>
<P>Public Function Base64Encode(strSource As String) As String<BR>On Error Resume Next<BR>If UBound(arrBase64) = -1 Then<BR>&nbsp;&nbsp;&nbsp; arrBase64 = Split(StrConv(cstBase64, vbUnicode), vbNullChar)<BR>End If<BR>Dim arrB() As Byte, bTmp(2)&nbsp; As Byte, bT As Byte<BR>Dim I As Long, J As Long<BR>arrB = StrConv(strSource, vbFromUnicode)</P>
<P>J = UBound(arrB)<BR>For I = 0 To J Step 3<BR>&nbsp;&nbsp;&nbsp; Erase bTmp<BR>&nbsp;&nbsp;&nbsp; bTmp(0) = arrB(I + 0)<BR>&nbsp;&nbsp;&nbsp; bTmp(1) = arrB(I + 1)<BR>&nbsp;&nbsp;&nbsp; bTmp(2) = arrB(I + 2)<BR>&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp; bT = (bTmp(0) And 252) / 4<BR>&nbsp;&nbsp;&nbsp; Base64Encode = Base64Encode &amp; arrBase64(bT)<BR>&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp; bT = (bTmp(0) And 3) * 16<BR>&nbsp;&nbsp;&nbsp; bT = bT + bTmp(1) \ 16<BR>&nbsp;&nbsp;&nbsp; Base64Encode = Base64Encode &amp; arrBase64(bT)<BR>&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp; bT = (bTmp(1) And 15) * 4<BR>&nbsp;&nbsp;&nbsp; bT = bT + bTmp(2) \ 64<BR>&nbsp;&nbsp;&nbsp; If I + 1 &lt;= J Then<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Base64Encode = Base64Encode &amp; arrBase64(bT)<BR>&nbsp;&nbsp;&nbsp; Else<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Base64Encode = Base64Encode &amp; "="<BR>&nbsp;&nbsp;&nbsp; End If<BR>&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp; bT = bTmp(2) And 63<BR>&nbsp;&nbsp;&nbsp; If I + 2 &lt;= J Then<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Base64Encode = Base64Encode &amp; arrBase64(bT)<BR>&nbsp;&nbsp;&nbsp; Else<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Base64Encode = Base64Encode &amp; "="<BR>&nbsp;&nbsp;&nbsp; End If<BR>Next<BR>End Function</P>
<P>Public Function Base64Decode(strEncoded As String) As String<BR>'适用于中、英文的Base64编码/解码VB6超精简版 作者:同济黄正 引用请注明出处:http://hz932.ys168.com<BR>On Error Resume Next<BR>Dim arrB() As Byte, bTmp(3)&nbsp; As Byte, bT, bRet() As Byte<BR>Dim I As Long, J As Long<BR>arrB = StrConv(strEncoded, vbFromUnicode)<BR>J = InStr(strEncoded &amp; "=", "=") - 2<BR>ReDim bRet(J - J \ 4 - 1)<BR>For I = 0 To J Step 4<BR>&nbsp;&nbsp;&nbsp; Erase bTmp<BR>&nbsp;&nbsp;&nbsp; bTmp(0) = (InStr(cstBase64, Chr(arrB(I))) - 1) And 63<BR>&nbsp;&nbsp;&nbsp; bTmp(1) = (InStr(cstBase64, Chr(arrB(I + 1))) - 1) And 63<BR>&nbsp;&nbsp;&nbsp; bTmp(2) = (InStr(cstBase64, Chr(arrB(I + 2))) - 1) And 63<BR>&nbsp;&nbsp;&nbsp; bTmp(3) = (InStr(cstBase64, Chr(arrB(I + 3))) - 1) And 63<BR>&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp; bT = bTmp(0) * 2 ^ 18 + bTmp(1) * 2 ^ 12 + bTmp(2) * 2 ^ 6 + bTmp(3)<BR>&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp; bRet((I \ 4) * 3) = bT \ 65536<BR>&nbsp;&nbsp;&nbsp; bRet((I \ 4) * 3 + 1) = (bT And 65280) \ 256<BR>&nbsp;&nbsp;&nbsp; bRet((I \ 4) * 3 + 2) = bT And 255<BR>Next<BR>Base64Decode = StrConv(bRet, vbUnicode)<BR>End Function</P>]]></description>
</item><item>
<title><![CDATA[为什么我的ＩＥ浏览器无法正常弹出新窗口]]></title>
<link>http://www.jiablog.com/user1/myfamily/archives/2007/2688.html</link>
<author>myfamily</author>
<pubDate>2007-9-11 12:40:35</pubDate>
<description><![CDATA[<P>症状：</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 忽然有一天，我的ＩＥ浏览器无法正常弹出新的窗口了，无论是广告的窗口，还是正常的通过&nbsp;&nbsp; hyperlink&nbsp;&nbsp; 的新开窗口，已经在Internet选项中启用javascript，但还是这样.你无法打开一个新的IE窗口，或者当你点击某一个链接时什么事也没有发生 。</P>
<P>&nbsp;</P>
<P>解决办法：</P>
<P>&nbsp;此文章适用于：&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp; Microsoft&nbsp;&nbsp; Internet&nbsp;&nbsp; Explorer&nbsp;&nbsp; version&nbsp;&nbsp; 6&nbsp;&nbsp; for&nbsp;&nbsp; Windows&nbsp;&nbsp; XP&nbsp;&nbsp; <BR>&nbsp; Microsoft&nbsp;&nbsp; Internet&nbsp;&nbsp; Explorer&nbsp;&nbsp; version&nbsp;&nbsp; 6&nbsp;&nbsp; for&nbsp;&nbsp; Windows&nbsp;&nbsp; 2000&nbsp;&nbsp; <BR>&nbsp; Microsoft&nbsp;&nbsp; Internet&nbsp;&nbsp; Explorer&nbsp;&nbsp; version&nbsp;&nbsp; 6&nbsp;&nbsp; for&nbsp;&nbsp; Windows&nbsp;&nbsp; NT&nbsp;&nbsp; 4.0&nbsp;&nbsp; <BR>&nbsp; Microsoft&nbsp;&nbsp; Internet&nbsp;&nbsp; Explorer&nbsp;&nbsp; version&nbsp;&nbsp; 6&nbsp;&nbsp; for&nbsp;&nbsp; Windows&nbsp;&nbsp; Millennium&nbsp;&nbsp; Edition&nbsp;&nbsp; <BR>&nbsp; Microsoft&nbsp;&nbsp; Internet&nbsp;&nbsp; Explorer&nbsp;&nbsp; version&nbsp;&nbsp; 6&nbsp;&nbsp; for&nbsp;&nbsp; Windows&nbsp;&nbsp; 98&nbsp;&nbsp; Second&nbsp;&nbsp; Edition&nbsp;&nbsp; <BR>&nbsp; Microsoft&nbsp;&nbsp; Internet&nbsp;&nbsp; Explorer&nbsp;&nbsp; version&nbsp;&nbsp; 6&nbsp;&nbsp; for&nbsp;&nbsp; Windows&nbsp;&nbsp; 98&nbsp;&nbsp; <BR>&nbsp; Microsoft&nbsp;&nbsp; Internet&nbsp;&nbsp; Explorer&nbsp;&nbsp; 5.5&nbsp;&nbsp; for&nbsp;&nbsp; Windows&nbsp;&nbsp; 2000&nbsp;&nbsp; <BR>&nbsp; Microsoft&nbsp;&nbsp; Internet&nbsp;&nbsp; Explorer&nbsp;&nbsp; 5.5&nbsp;&nbsp; for&nbsp;&nbsp; Windows&nbsp;&nbsp; NT&nbsp;&nbsp; 4.0&nbsp;&nbsp; <BR>&nbsp; Microsoft&nbsp;&nbsp; Internet&nbsp;&nbsp; Explorer&nbsp;&nbsp; 5.5&nbsp;&nbsp; for&nbsp;&nbsp; Windows&nbsp;&nbsp; Millennium&nbsp;&nbsp; Edition&nbsp;&nbsp; <BR>&nbsp; Microsoft&nbsp;&nbsp; Internet&nbsp;&nbsp; Explorer&nbsp;&nbsp; 5.5&nbsp;&nbsp; for&nbsp;&nbsp; Windows&nbsp;&nbsp; 98&nbsp;&nbsp; Second&nbsp;&nbsp; Edition&nbsp;&nbsp; <BR>&nbsp; Microsoft&nbsp;&nbsp; Internet&nbsp;&nbsp; Explorer&nbsp;&nbsp; 5.5&nbsp;&nbsp; for&nbsp;&nbsp; Windows&nbsp;&nbsp; 98&nbsp;&nbsp; <BR>&nbsp; Microsoft&nbsp;&nbsp; Internet&nbsp;&nbsp; Explorer&nbsp;&nbsp; 5.5&nbsp;&nbsp; for&nbsp;&nbsp; Windows&nbsp;&nbsp; 95&nbsp;&nbsp; <BR>&nbsp; Microsoft&nbsp;&nbsp; Internet&nbsp;&nbsp; Explorer&nbsp;&nbsp; 5.01&nbsp;&nbsp; for&nbsp;&nbsp; Windows&nbsp;&nbsp; 2000&nbsp;&nbsp; <BR>&nbsp; Microsoft&nbsp;&nbsp; Internet&nbsp;&nbsp; Explorer&nbsp;&nbsp; 5.01&nbsp;&nbsp; for&nbsp;&nbsp; Windows&nbsp;&nbsp; NT&nbsp;&nbsp; 4.0&nbsp;&nbsp; <BR>&nbsp; Microsoft&nbsp;&nbsp; Internet&nbsp;&nbsp; Explorer&nbsp;&nbsp; 5.01&nbsp;&nbsp; for&nbsp;&nbsp; Windows&nbsp;&nbsp; 98&nbsp;&nbsp; Second&nbsp;&nbsp; Edition&nbsp;&nbsp; <BR>&nbsp; Microsoft&nbsp;&nbsp; Internet&nbsp;&nbsp; Explorer&nbsp;&nbsp; 5.01&nbsp;&nbsp; for&nbsp;&nbsp; Windows&nbsp;&nbsp; 98&nbsp;&nbsp; <BR>&nbsp; Microsoft&nbsp;&nbsp; Internet&nbsp;&nbsp; Explorer&nbsp;&nbsp; 5.01&nbsp;&nbsp; for&nbsp;&nbsp; Windows&nbsp;&nbsp; 95&nbsp;&nbsp; <BR>&nbsp; Microsoft&nbsp;&nbsp; Internet&nbsp;&nbsp; Explorer&nbsp;&nbsp; 5.0&nbsp;&nbsp; for&nbsp;&nbsp; Windows&nbsp;&nbsp; NT&nbsp;&nbsp; 4.0&nbsp;&nbsp; <BR>&nbsp; Microsoft&nbsp;&nbsp; Internet&nbsp;&nbsp; Explorer&nbsp;&nbsp; 5.0&nbsp;&nbsp; for&nbsp;&nbsp; Windows&nbsp;&nbsp; 98&nbsp;&nbsp; Second&nbsp;&nbsp; Edition&nbsp;&nbsp; <BR>&nbsp; Microsoft&nbsp;&nbsp; Internet&nbsp;&nbsp; Explorer&nbsp;&nbsp; 5.0&nbsp;&nbsp; for&nbsp;&nbsp; Windows&nbsp;&nbsp; 98&nbsp;&nbsp; <BR>&nbsp; Microsoft&nbsp;&nbsp; Internet&nbsp;&nbsp; Explorer&nbsp;&nbsp; 5.0&nbsp;&nbsp; for&nbsp;&nbsp; Windows&nbsp;&nbsp; 95&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp; <BR>&nbsp; 症状&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp; <BR>&nbsp; 当你点击e-mail或网页中的超链接，或者右键单击某个网页中的超链接然后点击“在新窗口打开”时，你可能会遇到下面的情况：&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp; <BR>&nbsp; ·什么事也没有发生&nbsp;&nbsp; <BR>&nbsp; ·打开的新窗口是空白页&nbsp;&nbsp; <BR>&nbsp; ·你可能会收到一个脚本错误信息&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp; <BR>&nbsp; 当你使用Internet&nbsp;&nbsp; Explorer中的打印或打印预览命令时，什么事也没发生。&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp; <BR>&nbsp; 当你尝试连接WEB文件夹时，你可能会收到下列错误信息：&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp; <BR>&nbsp; 当前操作无法完成，因为一个未预料的错误发生。&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp; <BR>&nbsp; 原因&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp; <BR>&nbsp; 可能的原因有：&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp; <BR>&nbsp; 1、下列的一个或几个注册表键值指向了不正确的urlmon.dll文件定位:&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp; <BR>&nbsp; [HKEY_CLASSES_ROOT\CLSID\{79eac9e0-baf9-11ce-8c82-00aa004ba90b}\InprocServer32]&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp; <BR>&nbsp; [HKEY_CLASSES_ROOT\CLSID\{79eac9f1-baf9-11ce-8c82-00aa004ba90b}\InprocServer32]&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp; <BR>&nbsp; [HKEY_CLASSES_ROOT\CLSID\{79eac9f2-baf9-11ce-8c82-00aa004ba90b}\InprocServer32]&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp; <BR>&nbsp; 发生这个问题的原因可能是安装了由Internet&nbsp;&nbsp; Explorer&nbsp;&nbsp; Administration&nbsp;&nbsp; Kit(IEAK)&nbsp;&nbsp; 5.01&nbsp;&nbsp; Service&nbsp;&nbsp; pack&nbsp;&nbsp; 1、5.5&nbsp;&nbsp; Service&nbsp;&nbsp; pack&nbsp;&nbsp; 1、6.0增加的自定义版本的Internet&nbsp;&nbsp; Explorer。&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp; <BR>&nbsp; 2、下列注册表键值丢失或损坏：&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp; <BR>&nbsp; HKLM\SOFTWARE\Classes\Interface\{00020400-0000-0000-C000-000000000046}&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp; <BR>&nbsp; 3、下列文件中的一个或几个丢失、损坏或注册错误：&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp; <BR>&nbsp; Url.dll&nbsp;&nbsp; <BR>&nbsp; Mshtml.dll&nbsp;&nbsp; <BR>&nbsp; Actxprxy.dll&nbsp;&nbsp; <BR>&nbsp; Oleaut32.dll&nbsp;&nbsp; <BR>&nbsp; Shell32.dll&nbsp;&nbsp; <BR>&nbsp; Shdocvw.dll&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp; <BR>&nbsp; 解决方法&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp; <BR>&nbsp; 按照下面的步骤进行&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp; <BR>&nbsp; 1、退出所有正在运行的程序&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp; 2、打开开始-〉运行&nbsp;&nbsp; <BR>&nbsp; 3、输入regsvr32&nbsp;&nbsp; urlmon.dll，点击确定&nbsp;&nbsp; <BR>&nbsp; 4、当你收到“DllRegisterServer&nbsp;&nbsp; in&nbsp;&nbsp; urlmon.dll&nbsp;&nbsp; succeeded”的信息，点击确定&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp; 如果上述方法不行，就对下列文件，重复执行第2步到第4步的操作（在第3步，将文件urlmon.dll替换为下列文件）：&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp; <BR>&nbsp; Shdocvw.dll&nbsp;&nbsp; <BR>&nbsp; Msjava.dll&nbsp;&nbsp; <BR>&nbsp; Actxprxy.dll&nbsp;&nbsp; <BR>&nbsp; Oleaut32.dll&nbsp;&nbsp; <BR>&nbsp; Mshtml.dll&nbsp;&nbsp; <BR>&nbsp; Browseui.dll&nbsp;&nbsp; <BR>&nbsp; Shell32.dll&nbsp;&nbsp; (如果系统是windows&nbsp;&nbsp; 2000和windows&nbsp;&nbsp; xp的话)&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp; 如果问题仍然没有解决，确认下列注册表键值存在，并配置正确：&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp; <BR>&nbsp; HKLM\SOFTWARE\Classes\Interface\{00020400-0000-0000-C000-000000000046}&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp; Name:&nbsp;&nbsp; (Default)&nbsp;&nbsp; <BR>&nbsp; value:&nbsp;&nbsp; IDispatch&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp; <BR>&nbsp; HKLM\SOFTWARE\Classes\Interface\{00020400-0000-0000-C000-000000000046}\ProxyStubClsid&nbsp;&nbsp; <BR>&nbsp; Name:&nbsp;&nbsp; (Default)&nbsp;&nbsp; <BR>&nbsp; value:&nbsp;&nbsp; {00020420-0000-0000-C000-000000000046}&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp; <BR>&nbsp; HKLM\SOFTWARE\Classes\Interface\{00020400-0000-0000-C000-000000000046}\ProxyStubClsid32&nbsp;&nbsp; <BR>&nbsp; Name:&nbsp;&nbsp; (Default)&nbsp;&nbsp; <BR>&nbsp; value:&nbsp;&nbsp; {00020420-0000-0000-C000-000000000046}&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp; 如果问题仍然存在，重新安装Internet&nbsp;&nbsp; Explorer。如果你使用的是系统自带的Internet&nbsp;&nbsp; Explorer，修复或重新安装系统。&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp; <BR>&nbsp; 针对安装了Internet&nbsp;&nbsp; Explorer&nbsp;&nbsp; Administration&nbsp;&nbsp; Kit(IEAK)的用户&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp; <BR>&nbsp; 如果问题发生在你安装了一个由Internet&nbsp;&nbsp; Explorer&nbsp;&nbsp; Administration&nbsp;&nbsp; Kit&nbsp;&nbsp; (IEAK)&nbsp;&nbsp; 5.01&nbsp;&nbsp; Service&nbsp;&nbsp; Pack&nbsp;&nbsp; 1&nbsp;&nbsp; (SP1),&nbsp;&nbsp; 5.5&nbsp;&nbsp; SP1,&nbsp;&nbsp; or&nbsp;&nbsp; 6.0增加的自定义版本的Internet&nbsp;&nbsp; Explorer之后，并且通过重新注册urlmon.dll文件解决了问题，就请联系微软产品技术支持已获得最新的合适的修订。&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp; 相关的网站：&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp; <BR>&nbsp; <A href="http://support.microsoft.com/default.aspx?scid=fh;EN-US;CNTACTMS">http://support.microsoft.com/default.aspx?scid=fh;EN-US;CNTACTMS</A>&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp; <BR>&nbsp; 对于Internet&nbsp;&nbsp; Explorer&nbsp;&nbsp; 6.0，英文版修订中应该含有下列文件属性：&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp; <BR>&nbsp; Date&nbsp;&nbsp; Time&nbsp;&nbsp; Version&nbsp;&nbsp; Size&nbsp;&nbsp; File&nbsp;&nbsp; name&nbsp;&nbsp; <BR>&nbsp; ------------------------------------------------------&nbsp;&nbsp; <BR>&nbsp; 11-Oct-2001&nbsp;&nbsp; 19:45&nbsp;&nbsp; 6.0.2710.1100&nbsp;&nbsp; 189,440&nbsp;&nbsp; Ie6wzd.exe&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp; <BR>&nbsp; 对于Internet&nbsp;&nbsp; Explorer&nbsp;&nbsp; 5.5，英文版修订中应该含有下列文件属性：&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp; <BR>&nbsp; Date&nbsp;&nbsp; Time&nbsp;&nbsp; Version&nbsp;&nbsp; Size&nbsp;&nbsp; File&nbsp;&nbsp; name&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp; --------------------------------------------------------&nbsp;&nbsp; <BR>&nbsp; 18-Dec-2000&nbsp;&nbsp; 17:22&nbsp;&nbsp; 5.50.4612.1800&nbsp;&nbsp; 183,056&nbsp;&nbsp; Ie5wzd.exe&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp; <BR>&nbsp; 对于Internet&nbsp;&nbsp; Explorer&nbsp;&nbsp; 5.01，英文版修订中应该含有下列文件属性：&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp; <BR>&nbsp; Date&nbsp;&nbsp; Time&nbsp;&nbsp; Version&nbsp;&nbsp; Size&nbsp;&nbsp; File&nbsp;&nbsp; name&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp; ---------------------------------------------------------&nbsp;&nbsp; <BR>&nbsp; 01-Nov-2000&nbsp;&nbsp; 11:01a&nbsp;&nbsp; 5.0.3210.3100&nbsp;&nbsp; 177,424&nbsp;&nbsp; Ie5wzd.exe&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp; 重要提示：如果Automatic&nbsp;&nbsp; Version&nbsp;&nbsp; Synchronization&nbsp;&nbsp; (AVS，自动版本同步)在你做完上述文件修订之后执行了IEAK的安装，那么你必须再次手动进行一次修订！&nbsp;&nbsp; <BR>&nbsp;&nbsp; </P>
<P>&nbsp;</P>
<P>特别提示：安装了acdsee5迷你中文版后会出现这种情况，重装一下E文的acdsee5可解决。</P>]]></description>
</item><item>
<title><![CDATA[网游有感兼短评魔兽世界]]></title>
<link>http://www.jiablog.com/user1/myfamily/archives/2007/2687.html</link>
<author>myfamily</author>
<pubDate>2007-7-25 16:59:29</pubDate>
<description><![CDATA[<P style="TEXT-INDENT: 2em">本人也算个老游戏玩家，从94年开始玩游戏，到2002年就腻味了，基本不玩了，在我眼里，游戏都差不多了。偶尔要玩一个游戏，得先详细看游戏背景、职业、技能、攻略、图片等，才决定玩还是不玩。魔兽大名鼎鼎，也就搞了一个服务器版(私服哦，不要告诉别人)研究了一下，还行。但和某些游戏迷所说的顶级还差的远。 </P>
<P style="TEXT-INDENT: 2em">说到这里不得不提一下以前一个风靡全国的垃圾游戏《传奇》，可能当时大家刚刚接触图形网络游戏，觉得这个传奇实在太好了。现在看来，真是垃圾啊：1、物品和装备基本没有提示。2、画面难看。3、任务没有说明。4、朦胧美的地图指示，迷失方向。有了这几个问题，我真不知道进去能干什么？ </P>
<P style="TEXT-INDENT: 2em">《魔兽》好多了，用某位仁兄的话：很人性化。(见魔兽官方站《[经验心得] 感动spmk的《魔兽》人性化设计 》www.wowchina.com/fans/articles/exp_20041123_1.htm)，他说的人性化，其实都是基本要求。现在网络游戏的核心是做任务、杀怪、升级，谁愿意浪费时间，象个没头苍蝇一样，整天在路上跑来跑去找人找怪，除非你实在不知道怎么耗费你的时间。《魔兽》一样，还是脱不了网络游戏杀怪升级的老套套，一个游戏，TMD要花你几个月，甚至1年的时间重复干一样的事情，开始的新鲜感慢慢消失，烦都烦死了。 </P>
<P style="TEXT-INDENT: 2em">《魔兽》用的3D画面，俺实在不明白，3D有啥好的，真实吗？真实个P，NPC和玩家都是浮在场景上，做得差一点的游戏，人都是透明的！大家欣赏一下做完圣<A href="http://wow.duowan.com/static/6/0086/1JFPBFRV.html">战士</A>正义试炼任务，得到的一把战锤www.wowchina.com/fans/articles/img/20040905_5/2004-06-15-22-35-48.jpg，我不明白这么重的铁锤没有东西绑住它怎么能够“浮”在背上？《魔兽》的画面都做成这样，其他的就更惨不忍睹。而且3D对机器要求那么高，差一点的机器就慢死，3D有啥好？那位仁兄能告诉我？ </P>
<P style="TEXT-INDENT: 2em">《魔兽》里的NPC和玩家画像games2.sina.com.cn/g_pic//2006/3-19/6/gwwwrjcv.l.1.jpg怎么都这么难看，歪七歪八，东凸一块，西凹一块，怎么看都不协调，鬼佬的审美观和我们不一样到是可以理解，可我们都是中国人，大家都觉得这种画面很美，很精致，那真是见鬼了。 </P>
<P style="TEXT-INDENT: 2em">《魔兽》的故事背景太复杂，角色名字非常拗口，而且这种乱编的杂乱无章的国外神话故事实在是让人提不起兴趣(希腊神话不一样)。 </P>
<P style="TEXT-INDENT: 2em">种种理由都表明《魔兽》不应该成为中土的NO.1网络游戏，可实际上是，确实很悲哀。也许《魔兽》的技术很顶尖，可是离我心目中适合中国人的顶尖游戏还差的远。 </P>
<P style="TEXT-INDENT: 2em">任务要在一定的等级才能接，设计这种思路的真是个“天才”，为了做任务，大家只能不断练级，这样就陷入杀怪练级的怪圈。中国有句古话“量力而行”，任务根本不需要人为限制到一定等级才能做，你没那个本事，硬要去做你完成不了的任务，两个字：找死。有人会说，没有等级限制，那高手可以帮忙完成，大家很容易升级，满世界都是高手，游戏就不耐玩。屁话，游戏的耐玩就体现在不停的杀怪升级？没有等级限制后，你更可以千方百计想各种办法完成任务，比以前单纯靠杀怪升级更有意思了。 这样，反而能让游戏开发商把精力放在提升游戏的耐玩度上，而不是靠不停的杀怪升级耗费时间来骗游戏迷的钱了。</P>
<P style="TEXT-INDENT: 2em">根据IResearch艾瑞市场调查报告《2005市场占有率前15强网络游戏》，网易的《梦幻西游》 排名第一，可这游戏竟然连《西游记》中最吸引人的“飞”功能都不实现。拜托，大家都是神仙，你竟然不让我飞，这个神仙当着还有个啥意思？最可恨的，竟然把单机游戏中的“地雷”和回合制也引进来了，走几步，又是个地雷，然后开始你打我一拳，我再打你一拳，太恶了吧？这种游戏还能得第一? 只能说明我们的游戏和玩游戏的网民还真正处于“社会主义初级阶段”。</P>
<P style="TEXT-INDENT: 2em">不说了，网络游戏还有很长的路要走，现在所谓的种种好游戏，就像以前的传奇，过几年再看，垃圾一个！ </P>]]></description>
</item><item>
<title><![CDATA[aspchart的使用及文档]]></title>
<link>http://www.jiablog.com/user1/myfamily/archives/2007/2686.html</link>
<author>myfamily</author>
<pubDate>2007-6-6 16:40:43</pubDate>
<description><![CDATA[<P>ctBar= 1<BR>cNone= 0<BR>cGradient =6</P>
<P><BR>Dim Chart<BR>Set Chart = Server.CreateObject ("ASPChart.Chart")<BR>Chart.AddAxisLabel 1,"test"</P>
<P>Chart.LineWidth = 1<BR>Chart.LegendTextStyle = 2<BR>Chart.HintsVisible = true</P>
<P>&nbsp;</P>
<P>Chart.AddSeries (1)<BR>Chart.SeriesTitle="a"<BR>Chart.VertAxisMax =300<BR>Chart.VertAxisMin =0</P>
<P>Chart.AddValue 100, "1", vbRed<BR>Chart.AddValue 133, "2 ", vbRed<BR>Chart.AddValue 160, "3", vbRed<BR>Chart.BarStyle = cGradient</P>
<P>Chart.AddSeries (5)<BR>Chart.SeriesTitle="b"<BR>Chart.VertAxisMax =300<BR>Chart.VertAxisMin =0<BR>Chart.HorizAxisMax =6<BR>Chart.HorizAxisMin =0<BR>Chart.AddValue 200, "1", 0<BR>Chart.AddValue 233, "2 ", vbGreen<BR>Chart.AddValue 260, "3", vbGreen<BR>Chart.BarStyle = cGradient</P>
<P>Chart.PanelColor = vbWhite<BR>Chart.BevelOuter = cNone<BR>Chart.ChartBGColor = vbWhite</P>
<P>Chart.Height = 300<BR>Chart.Width = 500</P>
<P><BR>Chart.ProgressiveJPEGEncoding = true</P>
<P>'Chart.FileName="c\1.jpg"<BR>'Chart.SaveChart<BR>Response.ContentType = "image/JPEG"<BR>Response.BinaryWrite Chart.Image<BR>Set Chart = nothing</P>
<P>下载ASPCHART和文档：<A href="http://www.jiablog.com/UploadFiles/2007-6/66809631.rar">UploadFiles/2007-6/66809631.rar</A></P>
<P>&nbsp;</P>]]></description>
</item><item>
<title><![CDATA[浙江嘉善古镇－西塘（谍中谍3的拍摄地）]]></title>
<link>http://www.jiablog.com/user1/myfamily/archives/2007/2685.html</link>
<author>myfamily</author>
<pubDate>2007-6-4 0:00:14</pubDate>
<description><![CDATA[<P>&nbsp;</P>
<P>今天去浙江嘉善古镇－西塘逛了一圈，感觉还可以一看。</P>
<P><IMG src="http://www.jiablog.com/UploadFiles/2007-6/64541633.jpg"><BR></P>
<P>&nbsp;</P>
<P>汤帅哥到这种地方拍过电影后不知道感觉如何？<A href="http://www.xt-wutaiji.com/" target=_blank>文涛会所</A></P>]]></description>
</item><item>
<title><![CDATA[无意中发现的上海旧广告画（还露点哦）]]></title>
<link>http://www.jiablog.com/user1/myfamily/archives/2007/2684.html</link>
<author>myfamily</author>
<pubDate>2007-6-3 23:51:02</pubDate>
<description><![CDATA[<P><IMG src="http://www.jiablog.com/UploadFiles/2007-6/63936495.jpg"><BR><IMG src="http://www.jiablog.com/UploadFiles/2007-6/63552880.jpg"><BR><IMG src="http://www.jiablog.com/UploadFiles/2007-6/63405361.jpg"><BR><IMG src="http://www.jiablog.com/UploadFiles/2007-6/63345431.jpg"><BR><IMG src="http://www.jiablog.com/UploadFiles/2007-6/63865167.jpg"><BR><IMG src="http://www.jiablog.com/UploadFiles/2007-6/63261056.jpg"><BR><IMG src="http://www.jiablog.com/UploadFiles/2007-6/63270394.jpg"><BR><IMG src="http://www.jiablog.com/UploadFiles/2007-6/63512835.jpg"><BR><IMG src="http://www.jiablog.com/UploadFiles/2007-6/63332824.jpg"><BR><IMG src="http://www.jiablog.com/UploadFiles/2007-6/63417062.jpg"><BR><IMG src="http://www.jiablog.com/UploadFiles/2007-6/63453976.jpg"><BR></P>
<P>今天到浙江嘉善的古镇西塘逛了一圈。发现了这么些古董。</P>
<P>旧上海的广告大部分是香烟广告，也有照相机、奶粉、啤酒、布料等。 </P>
<P>我的照相机的时间没注意调整，实际上是今天照的。</P>]]></description>
</item><item>
<title><![CDATA[asp批量修改文件名]]></title>
<link>http://www.jiablog.com/user1/myfamily/archives/2007/2683.html</link>
<author>myfamily</author>
<pubDate>2007-6-1 15:09:50</pubDate>
<description><![CDATA[<P>&lt;HTML&gt;<BR>&lt;HEAD&gt;<BR>&lt;META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0"&gt;<BR>&lt;meta http-equiv="Content-Type" content="text/html; charset=gb2312"&gt;<BR>&lt;meta name="Keywords" content=""&gt;<BR>&lt;meta HTTP-EQUIV="Reply-to" content="<A href="mailto:kicker0609@163.com">kicker0609@163.com</A>"&gt;<BR>&lt;meta HTTP-EQUIV="http://www.jiablog.com/Expires" CONTENT="0"&gt;<BR>&lt;TITLE&gt;&lt;/TITLE&gt;<BR>&lt;/HEAD&gt;<BR>&lt;BODY&gt;<BR>&lt;%</P>
<P><BR>' 变量说明<BR>Dim gbolGoProcedure<BR>Dim strFromDir '源文件夹<BR>Dim strTargetDir '目标文件夹<BR>Dim objFS<BR>Dim objRootFolder<BR>Dim objFile<BR>Dim strFileNameLen<BR>Dim strPrevFileName<BR>Dim strFileExt '文件扩展名<BR>Dim strFileNameCount<BR>Dim strNewFileName<BR>Dim strRealCount '处理的文件数量</P>
<P>&nbsp;</P>
<P><BR>dim action<BR>action=Request.Form("action")<BR>strFromDir=replace(Request.Form("strFromDir")," ","")<BR>strTargetDir=replace(Request.Form("strTargetDir")," ","")<BR>'Response.Write action&amp;":"&amp;strFromDir&amp;":"&amp;strTargetDir</P>
<P>if action="start" then&nbsp; '开始改名并转移</P>
<P><BR>&nbsp;Set objFS = Server.CreateObject("Scripting.FileSystemObject")<BR>&nbsp;Set objRootFolder = objFS.GetFolder(strFromDir)<BR>&nbsp;For each objFile in objRootFolder.Files&nbsp; '规则k40-12A.vox----&gt;k_40_12.vox&nbsp;&nbsp;&nbsp;&nbsp; k9-4.vox---&gt;q_9_4.vox<BR>&nbsp;&nbsp;strPrevFileName = objFile.Name<BR>&nbsp;&nbsp;if (instr(strPrevFileName,"k")&gt;0 and instr(strPrevFileName,"A")&gt;0 and instr(strPrevFileName,"-")&gt;0)&nbsp; then '答案<BR>&nbsp;&nbsp;&nbsp;strNewFileName=replace(strPrevFileName,"k","k_")<BR>&nbsp;&nbsp;&nbsp;strNewFileName=replace(strNewFileName,"A","")<BR>&nbsp;&nbsp;&nbsp;strNewFileName=replace(strNewFileName,"-","_")<BR>&nbsp;&nbsp;&nbsp;Response.Write strTargetDir &amp;"\"&amp;strNewFileName&amp;"&lt;BR&gt;"<BR>&nbsp;&nbsp;&nbsp;objFile.Move strTargetDir &amp;"\"&amp; strNewFileName&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;end if<BR>&nbsp;&nbsp;<BR>&nbsp;&nbsp;if (instr(strPrevFileName,"k") and instr(strPrevFileName,"A")=0 and instr(strPrevFileName,"-")&gt;0) then '问题<BR>&nbsp;&nbsp;&nbsp;strNewFileName=replace(strPrevFileName,"k","q_")&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;strNewFileName=replace(strNewFileName,"-","_")<BR>&nbsp;&nbsp;&nbsp;objFile.Move strTargetDir &amp;"\"&amp; strNewFileName<BR>&nbsp;&nbsp;&nbsp;Response.Write strTargetDir &amp;"\"&amp; strNewFileName&amp;"&lt;BR&gt;"<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;end if<BR>&nbsp;Next</P>
<P>end if<BR>%&gt;</P>
<P>&lt;form name="changFileName" method="post"&gt;<BR>原来目录：&lt;input type="text" name="strFromDir" value="&lt;%=strFromDir%&gt;" size="50"&gt;&lt;BR&gt;<BR>目的目录：&lt;input type="text" name="strTargetDir"&nbsp; value="&lt;%=strTargetDir%&gt;" size="50"&gt;<BR>&lt;input type="hidden" name="action" value="start"&gt;<BR>&lt;input name="but" type="button" value="开始改名并转移文件" onclick="changFileName.submit()"&gt;</P>
<P><BR>&lt;/form&gt;<BR>&lt;/BODY&gt;<BR>&lt;/HTML&gt;<BR></P>]]></description>
</item><item>
<title><![CDATA[散兵游勇]]></title>
<link>http://www.jiablog.com/user1/myfamily/archives/2007/2682.html</link>
<author>myfamily</author>
<pubDate>2007-5-29 23:07:46</pubDate>
<description><![CDATA[<IMG src="http://www.jiablog.com/UploadFiles/2007-5/529849223.jpg"><BR>]]></description>
</item><item>
<title><![CDATA[唐伯虎点秋香剧照]]></title>
<link>http://www.jiablog.com/user1/myfamily/archives/2007/2681.html</link>
<author>myfamily</author>
<pubDate>2007-5-29 23:04:53</pubDate>
<description><![CDATA[<IMG src="http://www.jiablog.com/UploadFiles/2007-5/529495408.jpg"><BR>]]></description>
</item><item>
<title><![CDATA[黄龙体育中心安利纽崔莱健康跑]]></title>
<link>http://www.jiablog.com/user1/myfamily/archives/2007/2680.html</link>
<author>myfamily</author>
<pubDate>2007-5-29 22:46:34</pubDate>
<description><![CDATA[<IMG src="http://www.jiablog.com/UploadFiles/2007-5/529601261.jpg"><BR>]]></description>
</item><item>
<title><![CDATA[太极无形，蕴世间万象]]></title>
<link>http://www.jiablog.com/user1/myfamily/archives/2007/2679.html</link>
<author>myfamily</author>
<pubDate>2007-5-29 22:40:18</pubDate>
<description><![CDATA[<IMG src="http://www.jiablog.com/UploadFiles/2007-5/529581115.jpg"><BR>]]></description>
</item>
</channel>
</rss>
