Avatar billede set Nybegynder
07. januar 2004 - 20:27 Der er 10 kommentarer og
1 løsning

Finde længden af et ord i en sætning.

Hvordan kan man finde ud af hvor langt et enkelt ord er i en sætning. Jeg skal bruge det til at afgøre om der foretages et linieskift eller ej da pladsen hvor teksten skal stå er begrænset til 30 tegn i bredden.
På forhånd mange tak for en evt. løsning.
Avatar billede nmh Nybegynder
07. januar 2004 - 20:35 #1
Du må lige sige lidt mere om din situation.
Står du med en lang tekststreng, du vil have slået i stykker i flere linier?
Er der altid et blanktegn efter komma eller punktum?
Kunne det ikke tænkes at der var ord, der var længere end 30 tegn?
(det kunne ske, hvis det var brugere, der havde fået mulighed for at indlæse noget. Nogle vil fjolle desværre)
Avatar billede anhansen Nybegynder
07. januar 2004 - 20:36 #2
Evt. kunne man bruge split på strengen indeholdende sætningen, og så tælle i arrayet der bliver lavet, hvor langt hvor enkelt ord er.

Var det en mulig løsning?
Avatar billede eagleeye Praktikant
07. januar 2004 - 20:36 #3
Du kan dele ved mellemrum og tjekke hver ord.

MAX_LEN = 20
ordArr = Split(str," ")
for i = lbound(ordArr) to ubound(ordArr)
  if len(ordArr(i)) >= MAX_LEN then
    'uha uha ikke godt
  end if
next
Avatar billede set Nybegynder
07. januar 2004 - 20:41 #4
Der skal indsættes en tekst i et tabelfelt der ikke må være mere end 30 tegn bredt. Teksten kunne f.eks. skrives som      xxxxxx/xxxxxx/xxxxx/xxxx/xxx
uden mellemrum mellem skråstegerne, så jeg bliver nødt til at foretage en orddeling og et linieskift. Håber det var svar på spørgsmålet.
Avatar billede thesurfer Nybegynder
07. januar 2004 - 21:51 #5
Her er et eksempel, der muligvis løser problemet:

<%
Option Explicit ' Alle variablerne skal defineres! Så undgås stavefejl.. Bør *altid* bruges! Husk: skal være den første linie i filen!

' Definition/"dimmition" af variabler:
dim MAX_LEN, ordArr, str, i, strNy
dim a, tmp
dim NYT_TEGN

' der insættes et mellemrum efter Max antal bogstaver.. det retter du bare til det du vil
' f.eks. linieskift: NYT_TEGN = vbCrLf (uden "" tegn):
NYT_TEGN = " "

' en test streng:
str = "dette er noget tekst med et laaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaangt ord"

response.write "<br><br>Original: " & str ' kan slettes efter test..

MAX_LEN = 20 ' max længde per ord.. det retter du bare..

ordArr = Split(str, " ")
for i = lbound(ordArr) to ubound(ordArr)
tmp = ordArr(i)
  if len(ordArr(i)) >= MAX_LEN then

    for a = 0 to len(ordArr(i)) / MAX_LEN
      if len(tmp) >= MAX_LEN then
        strNy = strNy & NYT_TEGN & left(tmp, MAX_LEN) & vbCrLf
        tmp = mid(tmp, MAX_LEN + 1)
      end if
    next

  end if
strNy = strNy & " " & tmp
next

response.write "<br><br>Ny: " & strNy ' kan slettes efter test..
%>
Avatar billede set Nybegynder
07. januar 2004 - 22:16 #6
Det virker tak til thesurfer pointene er dine. Tak for hjælpen
Avatar billede thesurfer Nybegynder
07. januar 2004 - 22:24 #7
Et svar er smidt :)
Jeg ville sikkert have kommet frem til eagleeyes løsning (eller en der ligner), men synes alligevel at han skal have points :)
Avatar billede set Nybegynder
07. januar 2004 - 22:32 #8
ok så må eagleeyes godt pointene
Avatar billede thesurfer Nybegynder
07. januar 2004 - 22:36 #9
ahhh.. min fejl :)
rettelse til mit svar:
"Jeg ville sikkert have kommet frem til eagleeyes løsning (eller en der ligner)" = den første del af koden

"men synes alligevel at han skal have points :)" = "men synes alligevel at han OGSÅ skal have points :)"

Jeg vil også gerne have points :)
Du skal bare vente til eagleeye har lagt et svar.. så kan du fordele pointsne via "Avanceret"-knappen.. :)
Avatar billede eagleeye Praktikant
07. januar 2004 - 22:41 #10
Nej jeg behøver ikke point her, giv dem til thesurfer det virker jo ;)
Avatar billede thesurfer Nybegynder
08. januar 2004 - 13:58 #11
Takker for points :)
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