Теперь нет проблем генерировать из них статические страницы, но как генерировать статические файлы с номерами типа 20030405-1.htm 20030405-2.htm 20030405-3.htm по определенным правилам? В прошлый раз на него ответил друг из CSDN, поэтому я скопировал его. Исходный текст следующий
==========================
Используйте статистику по количеству слов в статьях, а затем усекайте вывод, когда он достигает определенного количества слов, но постраничный контент будет обрезан в необъяснимых местах, что не очень удобно.
Это очень просто: найдите следующий символ рядом с местом, которое вы хотите обрезать:
;'? . ! ;'.!
Если за ним стоит <p> или <br>, разрыв страницы. Главное – изучить формат статьи.
<%
если Request.ServerVariables(Content_Length) > 0, то
content = Request.Form(textarea1)PageLength = 1000 'Количество слов на странице
CLength = Длина (содержание)
PageCount = Int(Clength/PageLength) + 1 'Рассчитываем количество страниц в dim PageArray
redim PageArray(PageCount)Seperator = Array(chr(13),chr(10),.,!,?,;,,,,') 'Разделитель PageArray(0) = 0
Поз = 0
от j=0 до ubound(разделитель)
Pos = instr(PageArray(i)+900,content,Seperator(j)) 'Позиция рядом с PageArray(i)+900 составляет 100 слов, 1-999 можно изменить.
в то время как Pos > 0 и Pos < (i+1)*PageLength и Pos > i*PageLength
PageArray(i) = Позиция
Pos = instr(Pos+PageLength,content,Seperator(j))
wendif PageArray(i) > 0, тогда
Response.Write 0:i¦ &PageArray(i)&<br>&j&:j&Seperator(j)&<br>
j = j + ubound(разделитель) + 1
конец, если
следующий для i = 1 до PageCount-1
PageArray(i) = 0
Поз = 0
от j=0 до ubound(разделитель)
Pos = instr(PageArray(i-1)+950,content,Seperator(j))
в то время как Pos > 0 и Pos < (i+1)*PageLength и Pos > i*PageLength
PageArray(i) = Позиция
Pos = instr(Pos+PageLength,content,Seperator(j))
идти
если PageArray(i) > 0, то
Response.Write i&:i¦ &PageArray(i)&<br>&j&:j&Seperator(j)&<br>
j = j + ubound(разделитель) + 1
конец, если
следующий
следующийвыход = середина(содержание,1,PageArray(0))
вывод = заменить(выход,chr(13),<br>)
Ответ.Написать <br><br>Абзац 1<br>
Response.Запишите вывод для i=1 в PageCount-2.
вывод = средний (содержание, PageArray (i-1) + 1, PageArray (i)-PageArray (i-1))
вывод = заменить(выход,chr(13),<br>)
Response.Write <br><br>Абзац &i+1&<br>
Ответ.Записать вывод
Вывод следующего последнего абзаца больше не записывается.
%>
<FORM действие= метод=POST id=form1 name=form1>
<TEXTAREA rows=70 cols=120 id=textarea1 name=textarea1>
</ТЕКСТАРЕА>
<тип ввода=отправить значение=отправить идентификатор=отправить1 имя=отправить1>
</ФОРМ>
<%конец, если%>
-------------------------------------------------- -------------
Определите длину каждой страницы MaxLength
Общая длина текстаTotalLength
Сканируйте твердые возвраты в конце каждого абзаца статьи.
и вычислить длину
Как только оно превысит MaxLength, оно будет разделено на первую страницу.
Удалите часть перед этим жестким возвратом и повторите описанную выше операцию.