22. april 2002 - 21:53Der er
15 kommentarer og 1 løsning
nyhedting...
Jeg har flere steder set nyhedssider, hvor der kun er skrevet et bestemt antal tegn af nyheden og så et link hvor man kan læse hele nyheden. Hvordan laver man det?
Skal virksomheder stå stærkere mod angreb og kunne udvikle sig, skal sikkerhed, drift og forretning tænkes sammen. Det er tanken bag Jysk IT’s ambition om at skabe en “sikker fremtid” for kunderne.
Her en function som klipper i en lang linie ved et mellemrum bagud, angiv streng og længde:
Function CutString (YourString, intCut) if len(YourString) > intCut then posstart = InStrRev(YourString, " ",intCut) if (posstart <> 0) then YourString = Left(YourString, posstart) & "..." Exit Function end if end if CutString = YourString End function
Jeps den klikker også fuldstændig ukritsik selv midt i ord. Ligeledes sætter min ... så man kan se at der er mere til strengen og ikke bare slutter under
<%= left(rs("tekst"),50)%><% If len(rs("tekst")) > 50 then Response.Write "...(<a href=laes_nyhed?ID="& rs("ID") &"' onfocus='blur()'>læs mere</a>)" End if %>
Ja, men skal vi nu ikke lade agg-zeus bruger en af de to eller måske endda en blanding af vores forslag som passer til hans ønsker/behov til koden.
Hvis der nu er krav om at der kun må klippes i et mellemrum for ikke at hvavde halve ord i teksten, så skal man havde lidt mere kode som jeg har vist...
Har et lille problem, den siger hele tiden at "variablen posstart er udefineret" ! Hvorfor det!?
Hele scriptet ser således ud:
set rs = server.createobject("adodb.recordset")
sql = "Select top 3 * from news Order by maanedaar desc, dag desc;" rs.open sql,cn Dim posstart Function CutString (YourString, intCut) if len(YourString) > intCut then posstart = InStrRev(YourString, " ",intCut) if (posstart <> 0) then YourString = Left(YourString, posstart) & "..." Exit Function end if end if CutString = YourString End function
Do While not rs.EOF
Dim nyhed nyhed = Replace(rs.fields("nyhed"),"''","'") nyhed = CutString(nyhed,75)
Function CutString (YourString, intCut) Dim posstart if len(YourString) > intCut then posstart = InStrRev(YourString, " ",intCut) if (posstart <> 0) then YourString = Left(YourString, posstart) & "..." Exit Function end if end if CutString = YourString End function
Function CutString (YourString, intCut) Dim posstart if len(YourString) > intCut then posstart = InStrRev(YourString, " ",intCut) if (posstart <> 0) then CutString = Left(YourString, posstart) & "..." Exit Function end if end if CutString = YourString End function
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.