Martin Jensen skrev:
> Anders M wrote in dk.edb.internet.webdesign.serverside.asp:
>> Hej,
>> Jeg har lavet en søgefunktion, men ønsker ikke at udskrive alle
>> ord i den kolonne, som søgemaskinen finder. Hvordan kan man nøjes
>> med at skrive kun 25 bogstaver f.eks? Eks. hvis søgeordet er
>> aften
>>
>> ...det skete torsdag <b>AFTEN</b>...
>
> strString = "...det skete torsdag <b>AFTEN</b>... "
>
> response.write left(strString, 25)
Jeg har lavet nogle tests af en funktion, som tager det nærmeste hele
ord før et givent maks antal tegn.
Idéen er ikke svær, du hugger selve meddelelsen af ved de 25 tegn (brug
Len-funktionen), derefter bruger du instrRev til at finde nærmeste space
før sidste ord (fordi det kan være afhugget), og dette ord tager du ikke
med (man kan bruge left-funktionen).
Denne funktion tæller space med som et tegn.
Vil du have det mere præcist, kan du splitte teksten med space (som er
default), så kan du lave et loop, hvor du lægger hvert ord i arrayet
sammen, indtil det nærmeste antal tegn nås, som ikke overskrider 25 tegn.
Den samlede meddelelse vil så blive mindre end 25 bogstaver under alle
omstændigheder, men til gængæld så tæt på som muligt og kun hele ord.
Testen er her:
http://runejensen.dk/om/testside.asp
Nederst under overskriften:
"Truncate text"
Læg mærke til, at retur/ny linje f.eks. også tæller som et tegn. Så lige
meget, hvilken metode du vælger at bruge, vil det være smart at fjerne
alt over to følgende "RETUR", når de skal vises som resumé.
MVH
Rune Jensen