当前位置: 首页 > 图文教程 > 网络编程 > ASP > 对一篇很长的文章做到完美的分页输出

ASP
ASP技巧:让Len,Left,Right函数识别中文
Flash和ASP实现的用户登录/注册程序
ASP随机显示不重复记录解决方案
ASP动态网页制作常用错误处理
ASP对网页进行限制性的访问
初学:ASP内建对象Response
ASP Server object error的解决办法
ASP教程,ASP实现防盗链的方法
更改windows XP 的IIS连接数
xmldom在服务器端生成静态html页面
asp技巧:防止被杀毒软件误删的代码
ASP教程:初步接触ASP缓存技术
ASP教程:rs.getrows的使用方法介绍
ASP技巧:Utf-8和Gb2312乱码问题的终结
ASP教程:applicaton对象的使用集合
ASP环境:启动停止IIS不重启电脑的技巧
利用FLV组件制作的播放器,动态获取变量,控制FLV文件
ASP教程:ASP错误ASP 0201的解决方法
ASP技巧教程:认识学习codepage的属性
Codepage参数和其对应的语言

ASP 中的 对一篇很长的文章做到完美的分页输出


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-03   浏览: 86 ::
收藏到网摘: n/a

利用统计文章字数,然后达到一定字数就截断输出,但是分页的内容就会在莫名其妙的地方截断,不是很友好。
很简单,在要截断的地方附近找下面的符号:
;’”?。!;'".!
如果后面存在<p>或<br>就分页。主要是要研究文章的格式。
<%
if Request.ServerVariables("Content_Length") > 0 then
content = Request.Form("textarea1")

PageLength = 1000 '每页字数
CLength = Len(content)
PageCount = Int(Clength/PageLength) + 1 '计算页数

dim PageArray
redim PageArray(PageCount)

Seperator = Array(chr(13),chr(10),"。","!","?",";",",","”","’") '分隔符

PageArray(0) = 0
Pos = 0
for j=0 to ubound(Seperator)
Pos = instr(PageArray(i)+900,content,Seperator(j)) 'PageArray(i)+900 附近位置是100字,1-999可调
while Pos > 0 and Pos < (i+1)*PageLength and Pos > i*PageLength
PageArray(i) = Pos
Pos = instr(Pos+PageLength,content,Seperator(j))
wend

if PageArray(i) > 0 then
Response.Write "0:i¦ "&PageArray(i)&"<br>"&j&":j"&Seperator(j)&"<br>"
j = j + ubound(Seperator) + 1
end if
next

for i=1 to PageCount-1
PageArray(i) = 0
Pos = 0
for j=0 to ubound(Seperator)
Pos = instr(PageArray(i-1)+950,content,Seperator(j))
while Pos > 0 and Pos < (i+1)*PageLength and Pos > i*PageLength
PageArray(i) = Pos
Pos = instr(Pos+PageLength,content,Seperator(j))
wend

if PageArray(i) > 0 then
Response.Write i&":i¦ "&PageArray(i)&"<br>"&j&":j"&Seperator(j)&"<br>"
j = j + ubound(Seperator) + 1
end if
next
next

output = mid(content,1,PageArray(0))
output = replace(output,chr(13),"<br>")
Response.Write "<br><br>第1段<br>"
Response.Write output

for i=1 to PageCount-2
output = mid(content,PageArray(i-1)+1,PageArray(i)-PageArray(i-1))
output = replace(output,chr(13),"<br>")
Response.Write "<br><br>第"&i+1&"段<br>"
Response.Write output
next

'最后一段的输出就没写了

else
%>
<FORM action="" method=POST id=form1 name=form1>
<TEXTAREA rows=70 cols=120 id=textarea1 name=textarea1>
</TEXTAREA>
<INPUT type="submit" value="Submit" id=submit1 name=submit1>
</FORM>
<%end if%>