Avatar billede jacob_hs Nybegynder
14. marts 2003 - 15:03 Der er 6 kommentarer og
1 løsning

Forkorte tekst

Hej
Sidder med et problem.
Har en tekststring "str" som variere i længden, denne tekst skal gerne kunne deles efter x-antal tegn, dog skal teksten ikke dele midt i et ord.
Har lavet en funktion, men den virker ikke helt optimalt. Nogle ord forsvinder.

---
function Viser(str, lstartnr, antaltegn)

    antaltegn=lstartnr+antaltegn

    Do While antaltegn>lstartnr

        nr=Instr(antaltegn, str, " ")
        nr1=Instr(antaltegn, str, ",")
        nr2=Instr(antaltegn, str, ".")
        nr3=Instr(antaltegn, str, "?")

        if(nr=antaltegn)or(nr1=antaltegn)or(nr2=antaltegn)or(nr3=antaltegn) then
            slutantal = antaltegn-lstartnr

            Viser = mid(str, lstartnr, slutantal) &"<br>"
            startnr = lstartnr+slutantal
            Exit do
        end if
        old=nr

    antaltegn=antaltegn-1
    loop
end function

ny= ny& Viser(str, 1, 15)
ny= ny& Viser(str, startnr, 20)
ny= ny& Viser(str, startnr, 25)
ny= ny& Viser(str, startnr, 27)
ny= ny& Viser(str, startnr, 27)
ny= ny& Viser(str, startnr, 27)

---
Avatar billede soes Nybegynder
14. marts 2003 - 19:01 #2
Function SplitWord(strIn, intLength)
  Arr = Split(strIn, " ")

  For i = 0 To UBound(Arr)
    If tmpLength < intLength THEN
      strTmp = strTmp & Arr(i) & " "
      tmpLength = tmpLength + Len(Arr(i))
    Else
      Exit For
    End If
  Next
  SplitWord = strTmp
End Function

Har ikke lige proevet dette af, men det kan du evt. goere
Avatar billede jacob_hs Nybegynder
15. marts 2003 - 22:55 #3
Problemet er at teksten skal deles flere forskellige steder: eks:
----
strInd = "Dette er anden linie Som indeholder Flere tegn end der er i den anden tekst"

strUd = "
Dette er<br>
anden linie<br>
Som indeholder<br>
Flere tegn end der er i<br>
den anden<br>
tekst<br>"
-----
Håber nogen kan hjælpe. Der går desværre en uge inden jeg er tilbage her på eksperten, grundet en skiferie :)
Avatar billede jacob_hs Nybegynder
22. marts 2003 - 16:48 #4
Hjemme efter en god skitur :) Har dog stadig problemer med at få lavet min tekststring om som skrevet i min forrige kommentar. Håber der er en som kan hjælpe.
Avatar billede soes Nybegynder
22. marts 2003 - 17:55 #5
Kan ikke helt se hvordan du vil have dette loest da der ikke er noget moenster over hvordan det skal deles. Man kan ikke taelle bogstaver da laengden variere fra gang til gang. Hvis du vil have det loest saa tror jeg at du skal sidde manuelt og tilpasse hver linie
Avatar billede jacob_hs Nybegynder
22. marts 2003 - 18:30 #6
Som du kan se i min kode som står i mit spørgsmål kalder jeg min egen kode flere gange:
ny= ny& Viser(str, 1, 15)
ny= ny& Viser(str, startnr, 20)
ny= ny& Viser(str, startnr, 25)
ny= ny& Viser(str, startnr, 27)
ny= ny& Viser(str, startnr, 27)
ny= ny& Viser(str, startnr, 27)

Hvor det sidste tal angiver længden af tegn linien skal være, det virker også for nogle af mine sætninger, dog risikere jeg at det sidste ord forsvinder, og mit spørgsmål er om der er nogen som kan se hvad jeg gør galt i min kode
Avatar billede jacob_hs Nybegynder
24. marts 2003 - 10:58 #7
Har selv fundet fejlen, hvis jeg tvinger et mellemrum efter min string virker det, uden problemer.
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