ASP新闻分页,将一篇过长的文章分页,生成静态页面

  上次还是CSDN里的朋友回答的,我复制了下来。原文如下

  ===========================

  利用统计文章字数,然后达到一定字数就截断输出,但是分页的内容就会在莫名其妙的地方截断,不是很友好。

  很简单,在要截断的地方附近找下面的符号:

  ;'”?。!;'".!

  如果后面存在<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))

  wendif PageArray(i) > 0 then

  Response.Write "0:i¦ "&PageArray(i)&"<br>"&j&":j"&Seperator(j)&"<br>"

  j = j + ubound(Seperator) + 1

  end if

  nextfor 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

  nextoutput = mid(content,1,PageArray(0))

  output = replace(output,chr(13),"<br>")

  Response.Write "<br><br>第1段<br>"

  Response.Write outputfor 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%>

  ---------------------------------------------------------------

  定义有 每页面长度 MaxLength

  文本总长度 TotalLength

  扫描文章中每一个段尾处的硬回车

  并计算该处长度

  一旦超过 MaxLength 则分成第一页

  删除此硬回车前的部分 重复上述操作。