21. december 2002 - 18:46Der er
13 kommentarer og 1 løsning
Max tegn pr. linje
vis Jeg har denne kode og gerne vil have den skal skifte linje efter et bestem antal tegn når den udskrive fra data base feltet comments hvad gør jeg så
<% dim adogon dim rsguestbook dim strSQL set adoCon=Server.CreateObject("ADODB.Connection") adoCon.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" &
Server.MapPath("guestbook.mdb") Set rsGuestbook=Server.CreateObject("ADODB.Recordset") strSQL="SELECT tblComments.Name,tblcomments.Comments FROM tblComments;" rsGuestbook.open strSQL,adoCon Do While not rsGuestbook.EOF
dim adogon dim rsguestbook dim strSQL set adoCon=Server.CreateObject("ADODB.Connection") adoCon.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" &
Server.MapPath("guestbook.mdb") Set rsGuestbook=Server.CreateObject("ADODB.Recordset") strSQL="SELECT tblComments.Name,tblcomments.Comments FROM tblComments;" rsGuestbook.open strSQL,adoCon Do While not rsGuestbook.EOF inputStr = rsGuestbook("Comments") reDim arr(0) str = replace(inputStr,"<br>",vbCrLf) MaxLength = 1 while (LEN(str)>0) splitIndex = InStrRev(str, vbCrLf, MaxLength) if splitIndex = 0 then splitIndex = InStrRev(str, " ", MaxLength) if splitIndex = 0 then splitIndex = LEN(str) end if ReDim Preserve arr(UBOUND(arr) + 1) arr(UBOUND(arr)) = LEFT(str, splitIndex) str = MID(str, splitIndex + 1) wend outStr = "" for i = LBound(arr) to UBound(arr) outStr = outStr & arr(i) & vbCrLf next outStr = replace (outStr, vbCrLf, "<br>")
Eller så prøv denne den kan kan klkare det også hvis længden er lig med 1:
inputStr = rsGuestbook("Comments") ConstmaxCharPrLine = 20 charPrLine = 0 'Counter i = 1 'Counter outStr = "" inputStr = replace (inputStr,"<br>", vbCrLf) do while len(inputStr) > 0 if len(inputStr)>maxCharPrLine then maxCharPrLine = ConstmaxCharPrLine else maxCharPrLine = len(inputStr) end if indexBR = inStr(1,inputStr, Chr(10)) 'Tjek for return if indexBR = 0 then 'ingen return indexMM = inStrRev(inputStr," ",maxCharPrLine) if indexMM = 0 then 'Tjek om der ingen mellemrum er i ordet indexMM = maxCharPrLine outStr = outStr & Left(inputStr,maxCharPrLine) if (len(inputStr) > maxCharPrLine) then outStr = outStr & "-" & vbCrLf end if else outStr = outStr & Left(inputStr,indexMM) & vbCrLf end if indexBR = indexMM else if indexBR > maxCharPrLine then 'tjek om der er flere tegn end tilladt indexMM = inStrRev(inputStr," ",maxCharPrLine) if indexMM = 0 then 'Tjek om der ingen mellemrum er i ordet indexMM = maxCharPrLine outStr = outStr & Left(inputStr,maxCharPrLine) & "-" & vbCrLf else outStr = outStr & Left(inputStr,indexMM) & vbCrLf end if indexBR = indexMM else outStr = outStr & left(inputStr,indexBR) end if end if inputStr = mid(inputStr,indexBR+1) loop outStr = replace (outStr, vbCrLf, "<br>")
jo den virker men der kommer jo et grimt - istedet for et rent linje skift . og det var ikke fordi jeg ville have linje skift efter et bogstave den anden kode virkede bare ikke så jeg tænkte jeg prøver lige med 1
Begge koder viker til dette "Jeg har denne kode og gerne vil have den skal skifte linje efter et bestem antal tegn" Den føste virker ikke hvis du vil havde 1 karakter pr linie...
Jeg forstår ikke det sidste du skriver du kan sætte et mellemrum ind enten hvor - var eller ved hver vbCrLf som bliver til et linie skift.
HVis det skal være i et form textarea så skal man bruge vbCrLf som linie skift og ikke <br> Så dennne linie skal ikke med. outStr = replace (outStr, vbCrLf, "<br>")
hmm den første virker slet ikke det er det jeg prøver at sige (lige meget om jeg bruge 1 karakter eller 40 eller 1000) og den næste ser jo grim ud eks det er mig - der er her - eller er det
Nej det er vist dessvære ikke en lettere måde at gøre det på.
Synes godt om
Ny brugerNybegynder
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.