SannyWMedlem sedan jan. 2003438 inlägg Vad jag försöker fixa till är ett paging på text. Säg att max antal rader får vara 18 och maxantal tecken i bredd 60.
Hittade nedanstående här på forumet, problemet med nedanstånde är ju att det bryter efter 60 tecken. Det kan alltså hamna precis var som helst i ett ord. Samt att radbrytningarna blir problem, en radbrytning motsvarar ju 60 tecken.
Någon som har idéer att dela med sig på ev. lösning?
strText = objRS("kolumn")
objRS("kolumn")
For i = 1 To Len(strText) Step 60
strSplit = strSplit & "||" & Mid(strText, i, 60)
Next
arrSplit = Split(strSplit, "||")
If Request.QueryString("pg") = "" OR IsNumeric(Request.QueryString("pg")) = False Then
intPage = 1
Else
intPage = CInt(Request.QueryString("pg"))
End If
Response.Write(arrSplit(intPage))
SannyWMedlem sedan jan. 2003438 inlägg Nu skall vi se, har kommit fram lite längre.....har inte sett/hittat något fel än. Men ett problem dyker upp och det är att dela texten på rätt ställe, vill alltså inte få delade ord.
Gjorde en sökning och hittade en LarsG variant, men ser inte riktigt hur jag skall få in den.
mid(rs("f"),250+instr(mid(rs("f"),250)," "))
För om jag nu tänker rätt så måste jag vet hur ordet som nu ev skall brytas ser ut, så att jag kan använda positiva eller negativa värde nästa gång i loopen.
Någon ser tokigheter eller tycker att något borde se ut annorlunda så tas kommentarer tacksamt emot.
strText = "Blablabla"
' Hur många tecken som skall visas i varje paging
StartTecken = 10
' Fixar br/¤ som innehåller 1 tecken
FixBr = StartTecken - 1
' Byta br mot specialtecken ¤ (alt+4)
strText = Replace(strText, "<br>", "¤")
For i = 1 To Len(strText) Step StartTecken-value
Set objRegExp = New regexp
objRegExp.Global = true
objRegExp.IgnoreCase = true
objRegExp.Pattern = "¤"
Set objMatches = objRegExp.Execute(Mid(strText, i, StartTecken-value))
strCheckMatches = Clng(objMatches.count)
If value > 0 THEN
value = strCheckMatches * FixBr
Else
value = 0
End if
strSplit = strSplit & "||" & Mid(strText, i, StartTecken-value)
Next
strSplit = Replace(strSplit, "¤", "<br>")
arrSplit = Split(strSplit, "||")
If Request.QueryString("pg") = "" OR IsNumeric(Request.QueryString("pg")) = False Then
intPage = 1
Else
intPage = CInt(Request.QueryString("pg"))
End If
Response.Write(arrSplit(intPage))