|          
大概在九九年做游戏网站的时候,就对文章的发布感到麻烦,不过那会儿玩ASP不精。只是将就用着。在遇到长文件 10000 字时网页就是一大片长了。
 去年,做一个通用的文章与新闻管理系统时,曾写了一段代码,用来分离。现在贴出来。
 
 要说明的是:
 
 我的文章 录入界面是基于WEB的HEMLEDITOR,就像这里的ABC代码差不多。所以实际提交的是HTML格式的文 本。
 
 对HTML做了相应的处理,不会由HTML代码中切开。
 
 这里另一位兄弟曾发表过一个,原理一样,不过我没仔细看过,不知有啥不同。
 
 
 代码如下:
 --------------------------------------
 'Request Form Item
 I_Forder = Request.Form ("I_Folder")
 I_Topic= Request.Form ("I_Topic")
 I_Title= htmlencode(Request.Form ("I_Title"))
 I_Body = Request.Form ("body")
 I_Source = Request.Form ("I_Source")
 I_Keyword= htmlencode(Request.Form ("I_Keyword"))
 I_ISHOT= request.form("ishot")
 if i_ishot = "" then i_ishot="N"
 i_ispic= request.form("ispic")
 if i_ispic = "" then i_ispic ="N"
 i_pic= request.form("InsertImage")
 i_body = replace(i_body,"contentEditable=true","contentEditable=false")
 
 'Check Input
 '......
 
 'Get Pages ,B = Body
 B_Len = Len(I_Body)
 B_Pages = 1
 'T = Temp
 T_Loop = true
 
 Do While T_Loop'这里loop多次,每4000分一页,算出页码并加入库。
 If B_Len > 4000 then
 N_Body = Left(I_Body,4000) 'N = New
 'If "<P" in N_Body,Else ">" in N_Body
 If Instrrev(N_Body,"<P") > 0 and (Len(N_Body) - Instrrev(N_Body,"<P"))< 400 then
 N_Body = Left(N_Body,InstrRev(N_Body,"<P")-1)
 else if Instrrev(N_Body,"  ") > 0 and (Len(N_Body) - Instrrev(N_Body,"  "))< 400 then
 N_Body = Left(N_Body,InstrRev(N_Body,"  ")-1)
 Else If Instrrev(N_Body,"。") > 0 and (Len(N_Body) - Instrrev(N_Body,"。"))< 400 then
 N_Body = Left(N_Body,InstrRev(N_Body,"。"))
 Else If Instrrev(N_Body,";") > 0 and (Len(N_Body) - Instrrev(N_Body,";"))< 400 then
 N_Body = Left(N_Body,InstrRev(N_Body,";"))
 else if Instrrev(N_Body,",") > 0 and (Len(N_Body) - Instrrev(N_Body,","))< 400 then
 N_Body = Left(N_Body,InstrRev(N_Body,","))
 else if Instrrev(N_Body,".") > 0 and (Len(N_Body) - Instrrev(N_Body,"."))< 400 then
 N_Body = Left(N_Body,InstrRev(N_Body,"."))
 end if
 end if
 End If
 End If
 end if
 End if
 
 N_Len= Len(N_Body)
 I_Body = Mid(I_Body,N_Len+1)
 B_Len= Len(I_Body)
 
 Else
 N_Body = I_Body
 T_Loop = false
 End If
 
 
 'Add to database
 Exec_prc_Content_Ins I_Forder,I_Topic,I_Title,I_Source,N_Body,i_ispic,i_pic,i_ishot,I_Keyword,B_Pages
 
 '这里一个function,你可以自己处理,反正结果有两个,一个是body,一个是b_pages,就是页码。
 
 
 B_Pages = B_Pages + 1
 
 Loop
 
 
 %>
 
 <html>
 
 <head>
 <meta name="GENERATOR" content="Microsoft FrontPage 5.0">
 <meta name="ProgId" content="FrontPage.Editor.Document">
 <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
 <title>新建网页 1</title>
 <link rel="stylesheet" type="text/css" href="../CSS/default.css">
 </head>
 
 <body>
 
 <div align="center">
 <center>
 
 <table border=1 width="300" height="128" bordercolor="#000000" cellspacing="0" cellpadding="0" style="border-collapse: collapse"><tr>
 <td bgcolor="#DEDBD6" height="31">
 录入成功</td></tr><tr><td height="96">
 <p align="center">此文章共分<%=B_Pages-1%>页
 </td></tr>
 
 
 </center>
 </div>
 <script>
 top.main_top.location.reload();
 </script>
 
 </body>
 
 
 |