Agora não há problema em gerar páginas estáticas a partir deles, mas como gerar arquivos estáticos com números como 20030405-1.htm 20030405-2.htm 20030405-3.htm de acordo com certas regras? Um amigo da CSDN respondeu da última vez, então copiei. O texto original é o seguinte
===========================
Use estatísticas sobre a contagem de palavras dos artigos e, em seguida, trunque a saída quando atingir uma determinada contagem de palavras, mas o conteúdo paginado será truncado em locais inexplicáveis, o que não é muito amigável.
É muito simples, procure o seguinte símbolo próximo ao local que deseja truncar:
;'? . ! ;'.!
Se houver <p> ou <br> por trás dele, quebra de página. O principal é estudar o formato do artigo.
<%
se Request.ServerVariables(Content_Length) > 0 então
content = Request.Form(textarea1)PageLength = 1000 'Número de palavras por página
CLComprimento = Len(conteúdo)
PageCount = Int(Clength/PageLength) + 1 'Calcula o número de páginas dim PageArray
redim PageArray(PageCount)Seperator = Array(chr(13),chr(10),.,!,?,;,,,,') 'Separador PageArray(0) = 0
Pos = 0
para j = 0 para ubound (Separador)
Pos = instr(PageArray(i)+900,content,Seperator(j)) 'A posição próxima a PageArray(i)+900 é de 100 palavras, 1-999 é ajustável
enquanto Pos > 0 e Pos < (i+1)*PageLength e Pos > i*PageLength
MatrizPágina(i) = Pos
Pos = instr(Pos+Comprimento da página,conteúdo,Separador(j))
wendif PageArray(i) > 0 então
Resposta.Write 0:i¦ &PageArray(i)&<br>&j&:j&Seperator(j)&<br>
j = j + ubound (Separador) + 1
terminar se
nextfor i=1 para PageCount-1
MatrizPágina(i) = 0
Pos = 0
para j = 0 para ubound (Separador)
Pos = instr(PageArray(i-1)+950,content,Seperator(j))
enquanto Pos > 0 e Pos < (i+1)*PageLength e Pos > i*PageLength
MatrizPágina(i) = Pos
Pos = instr(Pos+Comprimento da página,conteúdo,Separador(j))
vamos
se PageArray(i) > 0 então
Resposta.Write i&:i¦ &PageArray(i)&<br>&j&:j&Seperator(j)&<br>
j = j + ubound (Separador) + 1
terminar se
próximo
próxima saída = mid(conteúdo,1,PageArray(0))
saída = substituir(saída,chr(13),<br>)
Response.Write <br><br>Parágrafo 1<br>
Response.Write saída para i = 1 para PageCount-2
saída = mid(conteúdo,PageArray(i-1)+1,PageArray(i)-PageArray(i-1))
saída = substituir(saída,chr(13),<br>)
Response.Write <br><br>Parágrafo &i+1&<br>
Resposta.Saída de gravação
A saída do próximo e último parágrafo não está escrita de outra forma.
%>
<FORM ação= método=POST id=form1 nome=form1>
<TEXTAREA linhas=70 colunas=120 id=textarea1 nome=textarea1>
</TEXTAREA>
<tipo de entrada = enviar valor = enviar id = enviar1 nome = enviar1>
</FORM>
<%fim se%>
-------------------------------------------------- -------------
Defina o comprimento de cada página MaxLength
Comprimento total do textoTotalLength
Procure retornos concretos no final de cada parágrafo do artigo
e calcule o comprimento
Quando exceder MaxLength, será dividido na primeira página.
Exclua a parte antes deste retorno forçado e repita a operação acima.