Maintenant, il n'y a aucun problème pour générer des pages statiques à partir d'eux, mais comment générer des fichiers statiques avec des numéros comme 20030405-1.htm 20030405-2.htm 20030405-3.htm selon certaines règles ? Un ami du CSDN y a répondu la dernière fois, alors je l'ai copié. Le texte original est le suivant
===========================
Utilisez des statistiques sur le nombre de mots des articles, puis tronquez la sortie lorsqu'elle atteint un certain nombre de mots, mais le contenu paginé sera tronqué à des endroits inexplicables, ce qui n'est pas très convivial.
C'est très simple, recherchez le symbole suivant à proximité de l'endroit que vous souhaitez tronquer :
;'? . ! ;'.!
S'il y a <p> ou <br> derrière, saut de page. L'essentiel est d'étudier le format de l'article.
<%
si Request.ServerVariables (Content_Length) > 0 alors
content = Request.Form(textarea1)PageLength = 1000 'Nombre de mots par page
CLongueur = Len (contenu)
PageCount = Int(Clength/PageLength) + 1 'Calculer le nombre de pages dim PageArray
redim PageArray(PageCount)Seperator = Array(chr(13),chr(10),.,!,?,;,,,,') 'Séparateur PageArray(0) = 0
Pos = 0
pour j=0 à ubound(Seperator)
Pos = instr(PageArray(i)+900,content,Seperator(j)) 'La position près de PageArray(i)+900 est de 100 mots, 1-999 est réglable
tandis que Pos > 0 et Pos < (i+1)*PageLength et Pos > i*PageLength
PageArray(i) = Pos
Pos = instr(Pos+PageLength,content,Seperator(j))
wendif PageArray(i) > 0 alors
Response.Write 0:i¦ &PageArray(i)&<br>&j&:j&Seperator(j)&<br>
j = j + ubound (séparateur) + 1
finir si
nextfor i=1 à PageCount-1
Tableau de pages (i) = 0
Pos = 0
pour j=0 à ubound(Seperator)
Pos = instr(PageArray(i-1)+950,content,Seperator(j))
tandis que Pos > 0 et Pos < (i+1)*PageLength et Pos > i*PageLength
PageArray(i) = Pos
Pos = instr(Pos+PageLength,content,Seperator(j))
wend
si PageArray(i) > 0 alors
Réponse.Écrire i&:i¦ &PageArray(i)&<br>&j&:j&Seperator(j)&<br>
j = j + ubound (séparateur) + 1
finir si
suivant
sortie suivante = milieu (contenu, 1, PageArray (0))
sortie = remplacer (sortie, chr (13),<br>)
Réponse.Écrire <br><br>Paragraphe 1<br>
Sortie Response.Write pour i = 1 à PageCount-2
sortie = milieu (contenu, PageArray (i-1) +1, PageArray (i) -PageArray (i-1))
sortie = remplacer (sortie, chr (13),<br>)
Réponse.Écrire <br><br>Paragraphe &i+1&<br>
Sortie Response.Write
La sortie du dernier paragraphe suivant n’est pas écrite autrement.
%>
<FORM action= méthode=POST id=form1 nom=form1>
<TEXTAREA rows=70 cols=120 id=textarea1 name=textarea1>
</TEXTAREA>
<INPUT type=submit value=Submit id=submit1 name=submit1>
</FORM>
<%end if%>
-------------------------------------------------- -------------
Définir la longueur de chaque page MaxLength
Longueur totale du texteTotalLength
Recherchez les retours concrets à la fin de chaque paragraphe de l'article
et calcule la longueur
Une fois qu'il dépasse MaxLength, il sera divisé en première page.
Supprimez la partie avant ce retour dur et répétez l'opération ci-dessus.