Avatar billede fc-dong Nybegynder
21. juli 2003 - 22:47 Der er 13 kommentarer og
3 løsninger

Linjeskift og maks 30 tegn?

Jeg har denne linje som virker fint, når man skal have den til at skift linje fra en database. Men hvad nu, hvis den samtidig maks. må vise 30 tegn?
<%=Replace(rsNyhed.Fields.Item("Brodtekst") &"", vbCrLf, "<br>") %>
Avatar billede dna Nybegynder
21. juli 2003 - 22:52 #1
<%=Replace(left(rsNyhed.Fields.Item("Brodtekst") &"", vbCrLf, "<br>"),30) %>
Avatar billede dna Nybegynder
21. juli 2003 - 22:53 #2
<%= left(Replace(rsNyhed.Fields.Item("Brodtekst") &"", vbCrLf, "<br>"),30) %>
Avatar billede nmh Nybegynder
21. juli 2003 - 22:53 #3
Ja så skal du jo slå den i stykker i 2 dele.
Hvis det er lige meget, hvor delingen skal være er det let, men hvis det skal ske i et mellemrum er det lidt mere besværligt.
Du kunne vælge at udskrive i et tekstområde. Så bliver teksten jo ombrudt automatisk.
Skriv lidt mere om din situation.
Avatar billede dna Nybegynder
21. juli 2003 - 22:53 #4
svar! :-)

Det første var lige en fejl!
Avatar billede dna Nybegynder
21. juli 2003 - 22:54 #5
omg.. jeg er vist træt! ... Jeg ville lægge et svar!
Avatar billede fc-dong Nybegynder
21. juli 2003 - 22:55 #6
Den skal helst stoppe med at skrive mellem to ord.
Den skal vise de først 30 tegn, men må ikke dele et ord i to
Avatar billede nmh Nybegynder
21. juli 2003 - 22:59 #7
Jeg kommer måske med et forslag i morgen.
Avatar billede fc-dong Nybegynder
21. juli 2003 - 23:03 #8
ok. Vi holder den åbent til i morgen så.
:-)
Avatar billede netro Nybegynder
21. juli 2003 - 23:08 #9
Function Ny_Streng(Streng)
  Arr_Streng = Split(Streng, " ")
  Ny_Streng = ""
  For i = 0 To UBound(Arr_Streng)
      If Len(Trim(Ny_Streng & " " & Arr_Streng(i))) <= 30 Then
        Ny_Streng = Ny_Streng & " " & Arr_Streng(i)
      Else
        Exit For
      End If
  Next
End Function

Response.Write Ny_Streng("Denne sætning vil blive afkortet til max 30 tegn")
Avatar billede soes Nybegynder
22. juli 2003 - 00:31 #10
En meget lille detalje til det netro har lavet. I princippet kan du godt faa retuneret mere end 30 tegn. Hvis din Ny_Streng er paa 28 tegn og og den tager loekken en gang til saa kan den fint ligge et ord til som er paa 7 tegn. Herved kommer strengen op paa 35 tegn. Det er selvfoelgelig ogsaa kun hvis du vil gaa i ekstremerne, hvilket nok ikke er noedvendigt i dette sammenhaeng ;)
Avatar billede netro Nybegynder
22. juli 2003 - 01:11 #11
Hvis den nye streng er på 28 tegn, vil den springe ud af løkken i næste omgang i og med, at længden af den nye streng, et mellemrum og næste ord på 7 tegn er større end 30.

If Len(Trim(Ny_Streng & " " & Arr_Streng(i))) <= 30 Then

~

If 28+1+7 <= 30
Avatar billede soes Nybegynder
22. juli 2003 - 05:11 #12
arhhhhh, sorry. min fejl. er vist en smule for traet.
Avatar billede netro Nybegynder
22. juli 2003 - 05:43 #13
Du lød meget sikker, så jeg blev da lige i tvivl et øjeblik ;)
Avatar billede nmh Nybegynder
22. juli 2003 - 08:15 #14
Jeg ser nu at netro har lavet næsten det samme som jeg, men her er min løsning:
function Formater(txt)
  dim L,i,A
  const LL=30, br="<br>" 'Her er linielængden sat til 5
 
  'Nu fjernes overflødige blanktegn
  L=0
  while L<>len(txt)
    L=len(txt)
    txt=replace(txt,"  "," ")
  wend
 
  'teksten deles op i ord
  A=split(txt," ")
 
  'Der sættes lineskift og blanktegn på ordene de rigtige steder
  L=0
  for i=0 to Ubound(A)
    L=L+len(A(i))
    if i>0 then L=L+1
    if L>LL then
      L=len(A(i))
      A(i)=br & A(i)
    elseif i>0 then
      A(i)=" " & A(i)
    end if 
  next

  'Teksten samles igen
  Formater=join(A,"")
end function
Avatar billede nmh Nybegynder
22. juli 2003 - 08:24 #15
Linielængden ovenfor er naturligvis sat til 30.
Hvis der er ord med en længde >30 vil de stå på deres egen linie. Hvis du er ligeglad med de oprindelige linieskift, så udskift dem med blanktegn, inden funktionen formater kaldes.

En generel bemærkning: VBscript er meget langsom til at lægge tekststrenge sammen. Man bør derfor bruge join-funktionen når man skal danne den nye tekst.
Avatar billede fc-dong Nybegynder
22. juli 2003 - 10:35 #16
Generelt kan jeg godt bruge alle 3 løsninger.
Så jeg takker for hjælpen alle 3.

:-)
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