文章内容分页显示函数

  从数据库中读取一篇文章显示时,如果内容太长的话,就需要到文章分页显示了,本文提供了一个文章分页的函数源代码。本过程由CSDN会员tatty_bad提供

'=================================================
'过程名:AutoPagination
'作  用:采用自动分页方式显示具体的内容
'参  数:MaxCharPerPage ----- 每页的文件字数
'        StrAutoId ----- 需要处理的Id
'        StrAutoIdName ----- Id的名字
'        StrContent ----- 需要处理的内容
'=================================================
sub AutoPagination(MaxCharPerPage,StrAutoId,StrAutoIdName,StrContent)
 dim CurrentPage
 dim ContentLen,MaxPerPage,pages,i,lngBound
 dim BeginPoint,EndPoint
 ContentLen=len(strContent)
 CurrentPage=trim(request("ArticlePage"))
 if ContentLen<=MaxCharPerPage then
  response.write strContent
 else
  if CurrentPage="" then
   CurrentPage=1
  else
   CurrentPage=Cint(CurrentPage)
  end if
  pages=ContentLen/MaxCharPerPage
  if MaxCharPerPage*pages<ContentLen then
   pages=pages+1
  end if
  lngBound=ContentLen          '最大误差范围
  if CurrentPage<1 then CurrentPage=1
  if CurrentPage>pages then CurrentPage=pages

  dim lngTemp
  dim lngTemp1,lngTemp1_1,lngTemp1_2,lngTemp1_1_1,lngTemp1_1_2,lngTemp1_1_3,lngTemp1_2_1,lngTemp1_2_2,lngTemp1_2_3
  dim lngTemp2,lngTemp2_1,lngTemp2_2,lngTemp2_1_1,lngTemp2_1_2,lngTemp2_2_1,lngTemp2_2_2
  dim lngTemp3,lngTemp3_1,lngTemp3_2,lngTemp3_1_1,lngTemp3_1_2,lngTemp3_2_1,lngTemp3_2_2
  dim lngTemp4,lngTemp4_1,lngTemp4_2,lngTemp4_1_1,lngTemp4_1_2,lngTemp4_2_1,lngTemp4_2_2
  dim lngTemp5,lngTemp5_1,lngTemp5_2
  dim lngTemp6,lngTemp6_1,lngTemp6_2
  
  if CurrentPage=1 then
   BeginPoint=1
  else
   BeginPoint=MaxCharPerPage*(CurrentPage-1)+1
   
   lngTemp1_1_1=instr(BeginPoint,strContent,"</table>",1)
   lngTemp1_1_2=instr(BeginPoint,strContent,"</TABLE>",1)
   lngTemp1_1_3=instr(BeginPoint,strContent,"</Table>",1)
   if lngTemp1_1_1>0 then
    lngTemp1_1=lngTemp1_1_1
   elseif lngTemp1_1_2>0 then
    lngTemp1_1=lngTemp1_1_2
   elseif lngTemp1_1_3>0 then
    lngTemp1_1=lngTemp1_1_3
   else
    lngTemp1_1=0
   end if
       
   lngTemp1_2_1=instr(BeginPoint,strContent,"<table",1)
   lngTemp1_2_2=instr(BeginPoint,strContent,"<TABLE",1)
   lngTemp1_2_3=instr(BeginPoint,strContent,"<Table",1)
   if lngTemp1_2_1>0 then
    lngTemp1_2=lngTemp1_2_1
   elseif lngTemp1_2_2>0 then
    lngTemp1_2=lngTemp1_2_2
   elseif lngTemp1_2_3>0 then
    lngTemp1_2=lngTemp1_2_3
   else
    lngTemp1_2=0
   end if
   
   if lngTemp1_1=0 and lngTemp1_2=0 then
    lngTemp1=BeginPoint
   else
    if lngTemp1_1>lngTemp1_2 then
     lngtemp1=lngTemp1_2
    else
     lngTemp1=lngTemp1_1+8
    end if
   end if

   lngTemp2_1_1=instr(BeginPoint,strContent,"</p>",1)
   lngTemp2_1_2=instr(BeginPoint,strContent,"</P>",1)
   if lngTemp2_1_1>0 then
    lngTemp2_1=lngTemp2_1_1
   elseif lngTemp2_1_2>0 then
    lngTemp2_1=lngTemp2_1_2
   else
    lngTemp2_1=0
   end if
      
   lngTemp2_2_1=instr(BeginPoint,strContent,"<p",1)
   lngTemp2_2_2=instr(BeginPoint,strContent,"<P",1)
   if lngTemp2_2_1>0 then
    lngTemp2_2=lngTemp2_2_1
   elseif lngTemp2_2_2>0 then
    lngTemp2_2=lngTemp2_2_2
   else
    lngTemp2_2=0
   end if
   
   if lngTemp2_1=0 and lngTemp2_2=0 then
    lngTemp2=BeginPoint
   else
    if lngTemp2_1>lngTemp2_2 then
     lngtemp2=lngTemp2_2
    else
     lngTemp2=lngTemp2_1+4
    end if
   end if

   lngTemp3_1_1=instr(BeginPoint,strContent,"</ur>",1)
   lngTemp3_1_2=instr(BeginPoint,strContent,"</UR>",1)
   if lngTemp3_1_1>0 then
    lngTemp3_1=lngTemp3_1_1
   elseif lngTemp3_1_2>0 then
    lngTemp3_1=lngTemp3_1_2
   else
    lngTemp3_1=0
   end if
   
   lngTemp3_2_1=instr(BeginPoint,strContent,"<ur",1)
   lngTemp3_2_2=instr(BeginPoint,strContent,"<UR",1)
   if lngTemp3_2_1>0 then
    lngTemp3_2=lngTemp3_2_1
   elseif lngTemp3_2_2>0 then
    lngTemp3_2=lngTemp3_2_2
   else
    lngTemp3_2=0
   end if
     
   if lngTemp3_1=0 and lngTemp3_2=0 then
    lngTemp3=BeginPoint
   else
    if lngTemp3_1>lngTemp3_2 then
     lngtemp3=lngTemp3_2
    else
     lngTemp3=lngTemp3_1+5
    end if
   end if
   
   if lngTemp1<lngTemp2 then
    lngTemp=lngTemp2
   else
    lngTemp=lngTemp1
   end if
   if lngTemp<lngTemp3 then
    lngTemp=lngTemp3
   end if

   if lngTemp>BeginPoint and lngTemp<=BeginPoint+lngBound then
    BeginPoint=lngTemp
   else
    lngTemp4_1_1=instr(BeginPoint,strContent,"</li>",1)
    lngTemp4_1_2=instr(BeginPoint,strContent,"</LI>",1)
    if lngTemp4_1_1>0 then
     lngTemp4_1=lngTemp4_1_1
    elseif lngTemp4_1_2>0 then
     lngTemp4_1=lngTemp4_1_2
    else
     lngTemp4_1=0
    end if
    
    lngTemp4_2_1=instr(BeginPoint,strContent,"<li",1)
    lngTemp4_2_1=instr(BeginPoint,strContent,"<LI",1)
    if lngTemp4_2_1>0 then
     lngTemp4_2=lngTemp4_2_1
    elseif lngTemp4_2_2>0 then
     lngTemp4_2=lngTemp4_2_2
    else
     lngTemp4_2=0
    end if
    
    if lngTemp4_1=0 and lngTemp4_2=0 then
     lngTemp4=BeginPoint
    else
     if lngTemp4_1>lngTemp4_2 then
      lngtemp4=lngTemp4_2
     else
      lngTemp4=lngTemp4_1+5
     end if
    end if
    if lngTemp4>BeginPoint and lngTemp4<=BeginPoint+lngBound then
     BeginPoint=lngTemp4
    else     
     lngTemp5_1=instr(BeginPoint,strContent,"<img",1)
     lngTemp5_2=instr(BeginPoint,strContent,"<IMG",1)
     if lngTemp5_1>0 then
      lngTemp5=lngTemp5_1
     elseif lngTemp5_2>0 then
      lngTemp5=lngTemp5_2
     else
      lngTemp5=BeginPoint
     end if
     
     if lngTemp5>BeginPoint and lngTemp5<BeginPoint+lngBound then
      BeginPoint=lngTemp5
     else
      lngTemp6_1=instr(BeginPoint,strContent,"<br>",1)
      lngTemp6_2=instr(BeginPoint,strContent,"<BR>",1)
      if lngTemp6_1>0 then
       lngTemp6=lngTemp6_1
      elseif lngTemp6_2>0 then
       lngTemp6=lngTemp6_2
      else
       lngTemp6=0
      end if
     
      if lngTemp6>BeginPoint and lngTemp6<BeginPoint+lngBound then
       BeginPoint=lngTemp6+4
      end if
     end if
    end if
   end if
  end if

  if CurrentPage=pages then
   EndPoint=ContentLen
  else
    EndPoint=MaxCharPerPage*CurrentPage
    if EndPoint>=ContentLen then
   EndPoint=ContentLen
    else
   lngTemp1_1_1=instr(EndPoint,strContent,"</table>",1)
   lngTemp1_1_2=instr(EndPoint,strContent,"</TABLE>",1)
   lngTemp1_1_3=instr(EndPoint,strContent,"</Table>",1)
   if lngTemp1_1_1>0 then
    lngTemp1_1=lngTemp1_1_1
   elseif lngTemp1_1_2>0 then
    lngTemp1_1=lngTemp1_1_2
   elseif lngTemp1_1_3>0 then
    lngTemp1_1=lngTemp1_1_3
   else
    lngTemp1_1=0
   end if
       
   lngTemp1_2_1=instr(EndPoint,strContent,"<table",1)
   lngTemp1_2_2=instr(EndPoint,strContent,"<TABLE",1)
   lngTemp1_2_3=instr(EndPoint,strContent,"<Table",1)
   if lngTemp1_2_1>0 then
    lngTemp1_2=lngTemp1_2_1
   elseif lngTemp1_2_2>0 then
    lngTemp1_2=lngTemp1_2_2
   elseif lngTemp1_2_3>0 then
    lngTemp1_2=lngTemp1_2_3
   else
    lngTemp1_2=0
   end if
   
   if lngTemp1_1=0 and lngTemp1_2=0 then
    lngTemp1=EndPoint
   else
    if lngTemp1_1>lngTemp1_2 then
     lngtemp1=lngTemp1_2-1
    else
     lngTemp1=lngTemp1_1+7
    end if
   end if

   lngTemp2_1_1=instr(EndPoint,strContent,"</p>",1)
   lngTemp2_1_2=instr(EndPoint,strContent,"</P>",1)
   if lngTemp2_1_1>0 then
    lngTemp2_1=lngTemp2_1_1
   elseif lngTemp2_1_2>0 then
    lngTemp2_1=lngTemp2_1_2
   else
    lngTemp2_1=0
   end if
      
   lngTemp2_2_1=instr(EndPoint,strContent,"<p",1)
   lngTemp2_2_2=instr(EndPoint,strContent,"<P",1)
   if lngTemp2_2_1>0 then
    lngTemp2_2=lngTemp2_2_1
   elseif lngTemp2_2_2>0 then
    lngTemp2_2=lngTemp2_2_2
   else
    lngTemp2_2=0
   end if
   
   if lngTemp2_1=0 and lngTemp2_2=0 then
    lngTemp2=EndPoint
   else
    if lngTemp2_1>lngTemp2_2 then
     lngTemp2=lngTemp2_2-1
    else
     lngTemp2=lngTemp2_1+3
    end if
   end if

   lngTemp3_1_1=instr(EndPoint,strContent,"</ur>",1)
   lngTemp3_1_2=instr(EndPoint,strContent,"</UR>",1)
   if lngTemp3_1_1>0 then
    lngTemp3_1=lngTemp3_1_1
   elseif lngTemp3_1_2>0 then
    lngTemp3_1=lngTemp3_1_2
   else
    lngTemp3_1=0
   end if
   
   lngTemp3_2_1=instr(EndPoint,strContent,"<ur",1)
   lngTemp3_2_2=instr(EndPoint,strContent,"<UR",1)
   if lngTemp3_2_1>0 then
    lngTemp3_2=lngTemp3_2_1
   elseif lngTemp3_2_2>0 then
    lngTemp3_2=lngTemp3_2_2
   else
    lngTemp3_2=0
   end if
     
   if lngTemp3_1=0 and lngTemp3_2=0 then
    lngTemp3=EndPoint
   else
    if lngTemp3_1>lngTemp3_2 then
     lngtemp3=lngTemp3_2-1
    else
     lngTemp3=lngTemp3_1+4
    end if
   end if
   if lngTemp1<lngTemp2 then
    lngTemp=lngTemp2
   else
    lngTemp=lngTemp1
   end if
   if lngTemp<lngTemp3 then
    lngTemp=lngTemp3
   end if

   if lngTemp>EndPoint and lngTemp<=EndPoint+lngBound then
    EndPoint=lngTemp
   else
    lngTemp4_1_1=instr(EndPoint,strContent,"</li>",1)
    lngTemp4_1_2=instr(EndPoint,strContent,"</LI>",1)
    if lngTemp4_1_1>0 then
     lngTemp4_1=lngTemp4_1_1
    elseif lngTemp4_1_2>0 then
     lngTemp4_1=lngTemp4_1_2
    else
     lngTemp4_1=0
    end if
    
    lngTemp4_2_1=instr(EndPoint,strContent,"<li",1)
    lngTemp4_2_1=instr(EndPoint,strContent,"<LI",1)
    if lngTemp4_2_1>0 then
     lngTemp4_2=lngTemp4_2_1
    elseif lngTemp4_2_2>0 then
     lngTemp4_2=lngTemp4_2_2
    else
     lngTemp4_2=0
    end if
    
    if lngTemp4_1=0 and lngTemp4_2=0 then
     lngTemp4=EndPoint
    else
     if lngTemp4_1>lngTemp4_2 then
      lngtemp4=lngTemp4_2-1
     else
      lngTemp4=lngTemp4_1+4
     end if
    end if
    
    if lngTemp4>EndPoint and lngTemp4<=EndPoint+lngBound then
     EndPoint=lngTemp4
    else     
     lngTemp5_1=instr(EndPoint,strContent,"<img",1)
     lngTemp5_2=instr(EndPoint,strContent,"<IMG",1)
     if lngTemp5_1>0 then
      lngTemp5=lngTemp5_1-1
     elseif lngTemp5_2>0 then
      lngTemp5=lngTemp5_2-1
     else
      lngTemp5=EndPoint
     end if
     
     if lngTemp5>EndPoint and lngTemp5<EndPoint+lngBound then
      EndPoint=lngTemp5
     else
      lngTemp6_1=instr(EndPoint,strContent,"<br>",1)
      lngTemp6_2=instr(EndPoint,strContent,"<BR>",1)
      if lngTemp6_1>0 then
       lngTemp6=lngTemp6_1+3
      elseif lngTemp6_2>0 then
       lngTemp6=lngTemp6_2+3
      else
       lngTemp6=EndPoint
      end if
     
      if lngTemp6>EndPoint and lngTemp6<EndPoint+lngBound then
       EndPoint=lngTemp6
      end if
     end if
    end if
   end if
    end if
  end if
  response.write mid(strContent,BeginPoint,EndPoint-BeginPoint)
  
  response.write "</p><p align='center'><b>"
  if CurrentPage>1 then
   response.write "<a href='" & strFileName & "?" & StrAutoIdName & "=" & StrAutoId & "&ArticlePage=" & CurrentPage-1 & "'>上一页</a>&nbsp;&nbsp;"
  end if
  for i=1 to pages
   if i=CurrentPage then
    response.write "<font color='red'>[" & cstr(i) & "]</font>&nbsp;"
   else
    response.write "<a href='" & strFileName & "?" & StrAutoIdName & "=" & StrAutoId & "&ArticlePage=" & i & "'>[" & i & "]</a>&nbsp;"
   end if
  next
  if CurrentPage<pages then
   response.write "&nbsp;<a href='" & strFileName & "?" & StrAutoIdName & "=" & StrAutoId & "&ArticlePage=" & CurrentPage+1 & "'>下一页</a>"
  end if
  response.write "</b></p>"
 end if
end sub

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值