Avatar billede kkd Nybegynder
11. september 2005 - 12:37 Der 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.

How to?

/kkd :oD
Avatar billede softspot Forsker
11. september 2005 - 15:07 #1
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
Avatar billede kkd Nybegynder
11. september 2005 - 15:48 #2
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?
Avatar billede softspot Forsker
11. september 2005 - 18:40 #3
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)
Avatar billede kkd Nybegynder
12. september 2005 - 18:47 #4
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

strOpdel = rs("RegionBeskrivelse")
strengIndtilSkaering = CutString(strOpdel,320)
strengEfterSkaering = CutStringRest(strOpdel,320)

kaldes med:
Response.Write strengIndtilSkaering
og
Response.Write strengEfterSkaering
Avatar billede softspot Forsker
12. september 2005 - 20:07 #5
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"))...
Avatar billede softspot Forsker
12. september 2005 - 20:11 #6
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
Avatar billede kkd Nybegynder
17. november 2005 - 20:00 #7
Slukker!
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester