Tjena! Hej. Tack för det! byt ut "..." mot "<br>". Sen får du skriva ut resten av strängen: Vad händer om det 100 teckenet är mitt i ett ord? Då kommer ordet att klippas av. Jag har gjort denna funktion för att fixa detta.Kapa sträng?
Jag har en löpsedel, som hämtar sina värden ifrån en tabell i databasen.
När jag ska presentera dom vill jag bara visa t ex 100 tecken.
Är det mer än 100 tecken skall den ersätta de 3 sista med "...".
Hur gör jag detta?
Jag kan inte begränsa det i databasen, för dessa presenteras även på andra sidor där det gärna får vara mer än 100 tecken...
Tackar på förhand!!
/JockeSv: Kapa sträng?
Kanske något istil med:
<code>
text = left( rs.fields("aText"), 97 )
text = text & "..."
response.write text
</code>
PhilipSv: Kapa sträng?
Det funkade som du skrev H3.
En följd fråga:
Istället för att kapa, skulle man kunna göra så här:
Om strängen > 100 så läggs en <br> och så kommer resten på raden under?
/JockeSv: Kapa sträng?
teststrang = Right(textstrang, Len(textstrang)-100)
MvH Dan "DaPe" PerssonSv: Kapa sträng?
Det den gör är att titta vilken tecken som finns på en vald position. Är inte ett mellanslag så hoppar vi framåt ett steg i taget i strängen tills att vi kommer till nästa mellanslag och klipper på så sätt inte av ett ord mitt i.
Jag lade till så att du kan välja om det skall vara en radbrytning eller ... på slutet.
<code>
Function klippInteOrd(strText,intHowLong,endTag)
Dim intLen
Dim whatChar
Dim checkChar
'längden på strängen som skickas in
intLen = Len(strText)
'Kolla om intHowlong är större än 0 och mindre än längden på strängen.
If intHowLong > 0 AND intHowLong < intLen Then
'kolla om strängen innehåller något mellanslag.
If instr(strText," ") Then
'vi går in i strängen på den position som är vald , intHowLong, och undersöker vilket tecken som är det
'Är det ett mellanslag så behöver vi ju inte göra något.
whatChar= mid(strText,intHowLong,1)
If whatChar = " " Then
klippInteOrd= left(strText,intHowlong) & endTag
Else
'Tecknet på vald position är inte ett mellanslag vilket innebär att om vi skulle köra en len() på
'strängen så skulle ett ord klippas av.
'Vi kommer nu att gå in i strängen vid vald position och gå framåt tills att vi hittar nästa
'mellanslag.
'Vill du inte gå framåt utan bakåt så använd denna kod:
'For i = intHowLong To 0 step -1
For i = intHowLong To intLen
checkChar = mid(strText,i,1)
'kolla om checkChar är ett mellanslag. Är det det så skriver vi antalet positioner med len
'och lämnar For slingan
If checkChar = " " Then
klippInteOrd= left(strText,i) & endTag
Exit for
End if
Next
End if
Else
'strängen har inget mellanslag så vi måste köra en vanligt len(strStrang,15) eller något
klippInteOrd= left(strText,intHowlong) & endTag
End if
Else
klippInteOrd= strText & endTag
End if
End Function
</code>
Kalla på den så här:
<code>
<%=klippInteOrd(enStrang,100,"...")%>
<%=klippInteOrd(enStrang,100,"<br>")%>
Går säkert att göra på ett bättre sätt men det fungerar för mig.
//Putte
</code>