Avatar billede golyf Nybegynder
28. september 2003 - 21:15 Der er 14 kommentarer og
1 løsning

format med newline fra forms

Jeg vil gerne formatere input fra en "textarea". Med et indput som ser såledet ud :

"


Hej
Dig"

vil jeg gerne ende med :

"Hej<br>Dig"

Mit forslag er som følger, men det dutter ikke helt. Hvad gør jeg forkert ?
----------------------------------
Function Format(Input)
  do while left(Input,1) = " " or left(Input,1) = "\n"
    Format = right(Input, len(input)-1)
    Input = Format
  loop
  do while left(Input,1) = "\n"
    Format = "<br> & right(Input, len(input)-1)
    Input = Format
  loop
end Function 'Format
Avatar billede netro Nybegynder
28. september 2003 - 21:18 #1
Tekst = Replace(Tekst, vbCrlf, "<br>")
Avatar billede eagleeye Praktikant
28. september 2003 - 21:19 #2
"\n" skal være vbCrLf som er en konstant for linje skift.
Avatar billede eagleeye Praktikant
28. september 2003 - 21:21 #3
Ok "\n" svare til vbLf

do while left(Input,1) = " " or left(Input,1) = vbLf
Avatar billede netro Nybegynder
28. september 2003 - 21:25 #4
vb = Visual Basic
CR = \r = Carriage Return
LF = \n = Line-Feed
Avatar billede golyf Nybegynder
28. september 2003 - 22:00 #5
Takker mange gange. Som symboliseret i toppen, så skal overslødige mellemrum og newlines før første karakter, fjernes. Lige nu kan den fjerne mellemrum eller newlines, men ikke en kombination.

Function Format(Input)
  do while left(Input,1) = " " or left(Input,1) = vbLf
    Format = right(Input, len(input)-1)
    Input = Format
  loop
end Function 'Format

Hvorfor virker det ikk' ?
Avatar billede eagleeye Praktikant
28. september 2003 - 22:08 #6
Det er nok fordi et return giver to karakter efter hinanden nemlig Carrige Return (vbCr) og så Line Feed (vbLf)

Så prøv:

do while left(Input,1) = " " or left(Input,1) = vbLf or left(Input,1) = vbCr
Avatar billede netro Nybegynder
28. september 2003 - 22:11 #7
Denne fjerner overflødige linieskift i starten og i slutningen af strengen:

Function Format(Input)
Do While Right(Input, 2) = vbCrlf
    Input = Left(Input, Len(Input) - 2)
Loop
Do While Left(Input, 2) = vbCrlf
    Input = Right(Input, Len(Input) - 2)
Loop
Format = Input
End Function
Avatar billede netro Nybegynder
28. september 2003 - 22:18 #8
Til at fjerne mellemrum bruger du bare Trim(), efter du har fjernet linieskift.

Format = Trim(Input)
Avatar billede golyf Nybegynder
28. september 2003 - 22:39 #9
Jeppser og selvfølgelig. Jeg sidder jo og halv sover. Glemte mine c dage, hvor der gik både en /n/r på en ny linie. Kæmpede godt nok med at fjerne to tegn af gange, men det ville ikke helt. Med eagleeye's kommentar fra 22:08:58, så virkede alt.

Takker.

Vil i ha' point, så må i sige til og svare :-)
Avatar billede eagleeye Praktikant
28. september 2003 - 22:40 #10
Så svare vi da bare ;)
Avatar billede netro Nybegynder
28. september 2003 - 22:45 #11
Tak som byder :)
Avatar billede netro Nybegynder
28. september 2003 - 22:47 #12
Det var egentlig et svar, men du accepterede lige før, jeg sendte, så det automatisk blev til en kommentar.
Avatar billede eagleeye Praktikant
28. september 2003 - 22:56 #13
Jeg kan da lige oprette et spm med point til dig?
Avatar billede golyf Nybegynder
28. september 2003 - 22:58 #14
skal nogle dele point ud, må det da være mig :-)
Avatar billede netro Nybegynder
28. september 2003 - 22:59 #15
Jeg tror, det var dit svar, der hjalp golyf mest, så det gør ikke noget. Ellers tak :-)
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