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 则分成第一页
删除此硬回车前的部分 重复上述操作。

(0)

相关推荐

  • Asp生成HTML方法大全

    方法一:FSO Set fs = CreateObject("Scripting.FileSystemObject")NewFile=Server.MapPath("/asp/chap06/at/newfile.html")'新建一文件/newfile.html,若该文件已存在,则覆盖它Set a = fs.CreateTextFile(NewFile, True)Response.Write"新文件已建立!"a.closeFile=Server

  • 在ASP中使用FSO组件生成HTML页面

    '共有两个页面index.htm是首页.程序比较简单,主要是用了ASP里的文件操作对象. <!--index.htm-------------------------------------------------------------------------------> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/l

  • asp:生成静态页面函数

    复制代码 代码如下: <% if SaveFile("/htm/list.htm","http://www.xxx.com/asp/list.asp") then Response.write "已生成" else Response.write "没有生成" end if function SaveFile(LocalFileName,RemoteFileUrl) Dim Ads, Retrieval, GetRemot

  • ASP生成html的新方法

    由于代码比较短,这里就不进行注释了  复制代码 代码如下: <% '当目标页面的包含文件即#include的页面里边存在response.End()的时候本程序有问题 '注意:本文件一定要放在20041227111723.htm指向的文件的同一目录下 dim hughchiu_rtcode Function get_exe_code(20041227111723.htm) dim execode dim tmp_str Dim re,re1,content,fso,f,aspStart,aspE

  • ASP网站生成静态html页面技术小结

    生成HTML方法主要步骤只有两个: 一.获取要生成的html文件的内容  二.将获取的html文件内容保存为html文件 我在这里主要说明的只是第一步:如何获取要生成的html文件的内容:  目前常用获取html文件的内容的方法有以下几种: 1. str="<html标记>内容</html标记>"  str=str&"<html标记>内容</html标记><html标记>数据库读取内容....</htm

  • ASP生成静态htm页面基本代码

    以下虚线框内为mk.asp文件的具体代码:--------------------------------------------------------------------------------<%filename="test.htm"if request("body")<>"" thenset fso = Server.CreateObject("Scripting.FileSystemObject"

  • asp分页生成html的程序脚本代码

    这是asp分页列表生成静态页面得asp小程序脚本 复制代码 代码如下: <!--#include file="conn.asp"-->  <html><head><TITLE>分页测试</TITLE><LINK href="inc/style.css" type=text/css rel=stylesheet></head>  <%strHead=strHead&&qu

  • ASP中不用模板生成HTML静态页面的方法

    当然是可以的,而且非常简单,今天就教大家在ASP中不用模板生成HTML静态页的方法. 这里假设有一个htmer.asp动态页面,你想把它生成为HTML静态页面htmer.html,那么我们首先新建一个ASP程序文件htmer_to_html.asp(该文件就是用来将htmer.asp动态页面生成为静态页面htmer.html的),htmer_to_html.asp的具体代码如下所示: 复制代码 代码如下: <form method="post" action="&quo

  • ASP生成静态文件编码为UTF-8格式的HTML文件

    一般我们在ASP环境下,运行动生静操作时都用到的是FSO,他是专门对文件进行操作的一个组件,他FSO的编码属性只有三种,系统默认,Unicode,ASCII,并没有我们要的utf-8,所以一般中文系统上使用FSO组件生成的文件都是gb2312格式的了,即便您在网页内写上charset="utf-8"也是没用的 要生成utf-8格式的文件,ASP环境下我们用 ADODB.Stream代替FSO读写utf-8文件,因为,ADODB.Stream,有一个CharSet 属性,可以让您定义要打

  • fso asp生成静态html的代码

    FSO生成静态HTML文件的时候替换模板标签一直是一个很麻烦的问题,至少我是这么认为的,还要别外做一个模板,麻烦!,我今天看见有一个方法可以解决这个问题 如一个正常的index.asp页面,并且用ASP代码调出数据库中的内容,另建一个makehtml.asp的页面,加入一个textarea域,假设为name="body",将index.asp在textarea里调出来,如:  <textarea name="body"><!--#include f

随机推荐