Function Shorter(strText)
arrText = Split(strText, " ")
For counter = 0 To uBound(arrText)
If Len(arrText(counter)) > 50 then
If newText <> "" then
newText = newText & " " & Left(arrText(counter), 50) & " " & Right(arrText(counter), Len(arrText(counter))-50)
Else
newText = Left(arrText(counter), 50) & " " & Right(arrText(counter), Len(arrText(counter))-50)
End If
Else
If newText <> "" then
newText = newText & " " & arrText(counter)
Else
newText = arrText(counter)
End If
End If
Next
Shorter = newText
End Function
Går det att lägga in någon form av loop i själva funktionen eller? För som det är nu fungerar det, men den bryter bara vid femtio en enda gång, så då är ju funktionen aningen onödig i så fall eftersom man kan hålla nere tangenten länge och få samma effekt.
Skickar med lite mera av koden..
<%
set recset = server.createobject("ADODB.recordset")
visa = "SELECT * FROM index ORDER BY ID desc"
recset.open visa, connect, adopenstatic, adlockoptimistic
steg = request.querystring("page") * msgpp - msgpp
count = 0
on error resume next
recset.move steg
do until recset.eof OR count = msgpp
%>
<%=radbyte(Shorter(Server.HTMLEncode(recset("msg"))))%>
<%
count = count -- 1
recset.movenext
loop
sql= "SELECT Count (ID) AS msgs FROM index"
set recset = connect.execute(sql)
if count = "" then
count = "0"
meddelande = "Inga meddelanden"
end if
%>
<%=meddelande%>
Det stod ju faktiskt såhär i kommentarerna till det skriptet:
'# str = "ett jäääääättelångtordlängreänfemtioteckensomintekommerskrivasut helt
'# Response.Write Shorter(str)
'#
'# Skriver ut de 50 första tecknen av ordet, ett mellanslag, [b]och sen resten av ordet[/b]
Function Shorter(strText)
osv...
Så jag antar att det gör vad man säger till det, men så vill ju inte jag ha det! Jag vill att resten av ordet, om resten är mer än femtio, också ska kapas av igen, och igen.... Nog måste väl det vara möjligt eller?
Tack, men jag förstår ändå inte varför inte funktionen funkar för mig, jag har ju lagt den utanför alla loopar, ovanför alla html-taggar. och anropar den med koden jag fick.
Den funkar ju som sagt så pass att den bryter en gång, men inte flera..hmm, är väl lite trög antagligen :)
Nåt sånt här!(med reservation för att jag städat lite för mycket)
'inkluderar adovbs.ink..
<%
function radbyte(str)
radbyte = Replace(str, vbCrLf, "<br>" & vbCrLf)
end function
Function Shorter(strText)
arrText = Split(strText, " ")
For counter = 0 To uBound(arrText)
If Len(arrText(counter)) > 50 then
If newText <> "" then
newText = newText & " " & Left(arrText(counter), 50) & " " & Right(arrText(counter), Len(arrText(counter))-50)
Else
newText = Left(arrText(counter), 50) & " " & Right(arrText(counter), Len(arrText(counter))-50)
End If
Else
If newText <> "" then
newText = newText & " " & arrText(counter)
Else
newText = arrText(counter)
End If
End If
Next
Shorter = newText
End Function
%>
'==========================================================
<%
set recset = server.createobject("ADODB.recordset")
visa = "SELECT * FROM index ORDER BY ID desc"
recset.open visa, connect, adopenstatic, adlockoptimistic
steg = request.querystring("page") * msgpp - msgpp
count = 0
on error resume next
recset.move steg
do until recset.eof OR count = msgpp
%>
Namn:
<%
if recset("mail") = "" OR recset("mail") = "-" then
%>
<b><%=Server.HTMLEncode(recset("namn"))%></b>
<%
else
%>
<a href=mailto:<%=recset("mail")%>><b><%=Server.HTMLEncode(recset("namn"))%></b></a>
<%
end if
%>
<br>
<%
if recset("hemsida")<> "" then
%>
sida: <%=Server.HTMLEncode(recset("hemsida"))%><br>
<%
end if
%>
Skickat: <i><%=Server.HTMLEncode(recset("datum"))%></i>
<%'=radbyte(Server.HTMLEncode(recset("msg")))%>
<%=radbyte(Shorter(Server.HTMLEncode(recset("msg"))))%>
<%
count = count -- 1
recset.movenext
loop
sql= "SELECT Count (ID) AS msgs FROM index"
set recset = connect.execute(sql)
if count = "" then
count = "0"
meddelande = "Inga meddelanden"
end if
%>
<%=meddelande%>
Antal meddelande: <b><%=x%></b>
<%
else
response.redirect "default.asp?page=1"
end if%>