奥运有没有立定跳高:VBScript中怎样把一长串字符串分页显示

来源:百度文库 编辑:杭州交通信息网 时间:2024/05/07 09:49:05
用ASP编程,遇到一篇长文章,而由于特殊需求,网页每页只能显示12行,每行28个字。
怎样把这串字符串分页显示?在遇到段落,各种半角字符时怎么也养处理 ?

嗯, 方法倒是有, 不过比较复杂, 而且这样做容易加重服务器的负担, 一是要对长字符串进行分析处理,二是这种处理根据文章的长短要重复处理,如一个文章会程序将它分为5页, 每显示一页都会对该文章进行一次处理.

我说个思路,你可以想想, 但是你据说的每页12行,每行28字,虽然不知道你的用处,但是后面你有说"半角字符", 这样,你的12*28规格就很难达到了. 我的思路的前提是程序检测段落,以段落来分页.如果某个段落超过一定长度,则到该段落分页.

分段换行的HTML标签一般为<p>或<br>,对,就用instr来查找<p>或<br>在文章中的位置,如果该位置大于长度值,那么就记下该<p>或<br>的位置,然后对字符串进行截取,如果小于,那我们就继续查找, 直到<p>或<br>的位置大于长度为止,考虑到分页,那么第2页.第3页的位置查找就与第一页不同, 因此在程序中最好加入一个判断, 当大于长度后,让一个变量加1,与页面进行比较,如,当前页为第3页,每一次查找到了大于长度的<p>或<br>位置,我们设一个变量SearchNum,然后加1(第一次查找到后的值则为1),与page的值"3"进行比较,不等于,继续查找,找到后再将SearchNum的值加1,(此时等2),与3个值不等,再继续查找,找到了,将第二次查找到的位置与第三次查找到的位置得到,使用mid函数进行字符串截取,这便是第三页的内容。

lyhcctc兄弟的方法不错, 但如果楼主是想对任何文章都进行分页,而这些文章是网友传上来的,你这招不会是要楼主亲手去添加[page]这个分页符或者由程序加入[page],楼主可以试试我的方法. 如果需要试的话,楼主给我留言,我发给你.

给你一个asp超长字符串分页函数:
字符串要在分页的地方用[page]标志(区分大小写)
<%
ArticleID=1
sub ManualPag(ByVal ArticleContent)
Dim CurrPage
Dim ContentLen,Pages,i
Dim arrContent

ContentLen = Len(ArticleContent)
CurrPage = Trim(Request("PageNum"))

If InStr(ArticleContent,"[page]")<=0 Then
Response.Write(ArticleContent)
Response.Write("<p></p><p align='center'><b>[1]</b></p>")
Else
arrContent=split(ArticleContent,"[page]")

Pages=Ubound(arrContent)+1
If CurrPage="" Then
CurrPage=1
Else
CurrPage=CInt(CurrPage)
End If

If CurrPage<1 Then CurrPage=1
If CurrPage>Pages Then CurrPage=Pages

Response.Write arrContent(CurrPage-1)

Response.Write "<p></p><p align='center' style='font-size:9pt;'><b>本文共" & Pages & "页:"
If CurrPage>1 Then
Response.Write "<a href='?ArticleID=" & ArticleID & "&PageNum=" & CurrPage-1 & "'>上一页</a>"
End If
for i=1 to Pages
If i=CurrPage Then
Response.Write " " & CStr(i) & " "
Else
Response.Write "<a href='?ArticleID=" & ArticleID & "&PageNum=" & i & "'>[" & i & "]</a>"
End If
next
If CurrPage<Pages Then
Response.Write "<a href='?ArticleID=" & ArticleID & "&PageNum=" & CurrPage+1 & "'>下一页</a>"
End If
Response.Write "</b></p>"
End If
End sub