11. september 2005 - 12:37Der er
6 kommentarer og 1 løsning
Dele streng efter x tegn, så begge halvdele kan bruges
Hej.
Jeg har følgende kode til at dele en streng efter et givent antral tegn. Den deler strengen, således at den ikke klipper midt i et ord!
Function CutString (str, intCut) if len(str) > intCut then posstart = InStrRev(str, " ", intCut) if (posstart <> 0) then CutString = Left(str, posstart) Exit Function end if end if CutString = str End function str = rs("Beskrivelse")
det jeg mangler er at kunne skrive den anden halvdel ud, således at jeg kan skrive de første, f.eks. 350 tegn ud som en variabel (hvilket jeg i øjeblikket gør med "Response.write CutString (str, 350)"), og resten i en anden.
Function CutString (str, intCut) if len(str) > intCut then posstart = InStrRev(str, " ", intCut) if (posstart <> 0) then CutString = Right(str, len(str) - posstart) Exit Function end if end if CutString = str End function
jeg kan ikke få det til at virke, når jeg skal have en funktion til at vise de første tegn, og en anden til at vise de sidste. Jeg har nu to næsten ens funktioner, og selvom jeg prøver at lave lidt om på navnene af variablerne i dem, vil de ikke. Kan du ikke give et eksempel hvor begge funktioner er, samt et eksempel på hvordan de kaldes?
Function CutStringRest(str, intCut) if len(str) > intCut then posstart = InStrRev(str, " ", intCut) if (posstart <> 0) then CutStringRest = Right(str, len(str) - posstart) Exit Function end if end if CutStringRest = str End function
Function CutString (str, intCut) if len(str) > intCut then posstart = InStrRev(str, " ", intCut) if posstart <> 0 then CutString = Left(str, posstart) Exit Function end if end if CutString = str End function
strOpdel = "Denne streng skal opdeles ved position 15" strengIndtilSkaering = CutString(strOpdel,15) strengEfterSkaering = CutStringRest(strOpdel,15)
Det virker ikke. Den skriver absolut ingenting ud:
Function CutStringRest(str, intCut) if len(str) > intCut then posstart = InStrRev(str, " ", intCut) if (posstart <> 0) then CutStringRest = Right(str, len(str) - posstart) Exit Function end if end if CutStringRest = str End function
Function CutString (str, intCut) if len(str) > intCut then posstart = InStrRev(str, " ", intCut) if posstart <> 0 then CutString = Left(str, posstart) Exit Function end if end if CutString = str End function
Jeg har lige testet det og det fungerer fint. Det må være noget med dine data eller måde du bruger det. Kan du ikke vise det kode hvori det indgår og evt. prøve at skrive dit datagrundlag ud (altså det der ligger i rs("RegionsBeskrivelse"))...
Man kan dog argumentere for at CutStringRest nok ikke skal returnere hele strengen hvis den er kortere end skæringspunktet, men det tror jeg nu ikke er problemet, for så ville der bare komme for meget tekste og ikke som nu, ingen. Den skal nok se således ud:
Function CutStringRest(str, intCut) if len(str) > intCut then posstart = InStrRev(str, " ", intCut) if (posstart <> 0) then CutStringRest = Right(str, len(str) - posstart) Exit Function end if end if CutStringRest = "" 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.