|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
ASP在国内异常流行,因为国内大多使用的是盗版的Windows和盗版的SQLServer,而ASP+COM+SQLServer实际上也是一种不错的搭配,其性能也不输于PHP+MYSQL,特别是Windows系统和SQLServer都有图形界面,比APACHE和MYSQL易于维护,因此对于不重视知识产权的国家来说也是一种不错的选择。心得|字符串vbs和js都供应了截取必定长度的字符串的函数,但有一个成绩是这些函数都将中笔墨符视为1个字节,而不是一般的2个字节,假如这些输出的数据要提交到数据库中的话,极可能这些数据的真正长度回覆与数据库中该字段所同意的最年夜长度,因而就堕落了。
最入手下手我不会如许做,看了cheery_ke兄宣布的帖子
http://www.dev-club.com/club/bbs/showAnnounce.asp?id=1227955
后才晓得该怎样做。详细程序是
--------------------*****START*****--------------------
FUNCTIONstrLeft(str,num)
DIMp_str,p_num
p_str=""
p_num=0界说变量,标志中文为2字节时的实践字符数
IFTRIM(str)""THEN
FORi=1TOnum
IFasc(mid(str,i,1))>255ORASC(mid(str,i,1))<0THEN判别下一个欲取的字符所占字节数
p_num=p_num+2
Else
p_num=p_num+1
EndIF
IFp_num>numTHENEXITFOR
NEXT
p_str=Left(str,i-1)把i-1交换为i,则发生与“申明”中相反的情形。
ENDIF
strLeft=p_str
ENDFUNCTION
--------------------******END******--------------------
但是在实践利用中发明cheery_ke兄供应的程序有些成绩:假如提交的字符串字数少于所同意的最年夜字数则程序报告错,缘故原由是FOR轮回处的轮回次数年夜于字符串的实践长度,招致下一句中mid函数的参数i年夜于字符串的长度,呈现毛病。
我针对这个程序作了以下改善:
functionstrLeft(str,num)
dimp_str,p_num
p_str=""
p_num=0
iftrim(str)""then
p_len=len(str)
fori=1top_len
ifasc(mid(str,i,1))>255orasc(mid(str,i,1))<0then
p_num=p_num+2
else
p_num=p_num+1
endif
ifp_num>numthen
p_str=Left(str,i-1)
exitfor
else
p_str=str
endif
next
endif
strLeft=p_str
endfunction
如许就不会呈现谁人成绩了。
跋文:我写这篇文章不是为了经由过程指出别人的毛病来举高本人,我只是个进修asp没多久的freshman,并且在这个论坛也失掉过cheery_ke兄的匡助,我是很感谢和佩服他的。指出这个成绩是为了一些像我如许的菜鸟在碰到这个成绩的时分能少绕些弯路,并且本人在这个论坛学了这个多器材却一向无以报答,深感歉疚,因而写下本人的一点心得举动当作本人的一番情意,至因而否见笑于人就不得而知了。</p>缺点:安全性不是太差了,还行,只要你充分利用系统自带的工具;唯一缺点就是执行效率慢,如何进行网站优化以后,效果会比较好。 |
|