07. april 2005 - 18:57Der er
14 kommentarer og 1 løsning
Automatisk linieskift efter et bestemt antal bogstaver
Jeg har en Access database, hvor jeg henter nogle oplysninger fra. Men når teksten skal vises støder jeg på en problem, hvis jeg laver et langt ord uden mellemrum/linieskift.
ex. Lad os sige at min side er 200px bred. Laver jeg et langt ord uden mellemrum/linieskift, bliver siden i stedet for 300 px bred.
Kan jeg ikke lave en tilføjelse ved Response.write rs("etellerandet") som gør at den på samme linie kun kan lave et bestemt antal bogstaver, hvorefter den automatisk laver et linieskift, selvom der ikke er lavet mellemrum/linieskift i ordet?
for i = 0 to UBound(mySplit) if Len(mySplit(i)) > int(50) then Response.write Left(mySplit(i),50) & "-<br />" & Mid(mySplit(i),50,Len(mySplit(i))) & " " else Response.write mySplit(i) & " " end if next
Her er et forslag til hvordan det kan gøres... Kan selvfølgelig forbedres
for i = 0 to UBound(mySplit) if Len(mySplit(i)) > int(antalTegn) then thetxt = thetxt & Left(mySplit(i),antalTegn) & "-" & linjeskift if Mid(mySplit(i),antalTegn+1,Len(mySplit(i))-antalTegn) > int(antalTegn) then thetxt = thetxt & DelOrd(Mid(mySplit(i),antalTegn+1,Len(mySplit(i))-antalTegn),antalTegn,linjeskift) & " " else thetxt = thetxt & Mid(mySplit(i),antalTegn+1,Len(mySplit(i))-antalTegn) & " " end if else thetxt = thetxt & mySplit(i) & " " end if next
Response.write DelOrd("....",10,"<br />") er den linje du sætter den rs ind i... 10 er maxlængden på dine ord og "<br />" er den måde jeg plejer at lave linje skift, andre bruger muligvis "<br>", eller whatever. Sådan kan din se ud: Response.write DelOrd(rs("etellerandet"),10,"<br />")
for i = 0 to UBound(mySplit) if Len(mySplit(i)) > int(antalTegn) then thetxt = thetxt & Left(mySplit(i),antalTegn) & "-" & linjeskift if Mid(mySplit(i),antalTegn+1,Len(mySplit(i))-antalTegn) > int(antalTegn) then thetxt = thetxt & DelOrd(Mid(mySplit(i),antalTegn+1,Len(mySplit(i))-antalTegn),antalTegn,linjeskift) & " " else thetxt = thetxt & Mid(mySplit(i),antalTegn+1,Len(mySplit(i))-antalTegn) & " " end if else thetxt = thetxt & mySplit(i) & " " end if next
- men kommer med denne fejl: Fejltype: Der opstod en Microsoft VBScript-kompileringsfejl (0x800A03EA) Der er en syntaksfejl /beskrivelse.asp, line 343 function DelOrd(txt,antalTegn,linjeskift)
hmm, sq mystisk. Jeg sidder godt nok og laver det lokalt på computeren, men det burde ikke have betydning. Kan du ikke prøve at vise hele den side du har lagt online? Så burde jeg da få det til at fungere med en enkelt rettelse ved rs-linien.
for i = 0 to UBound(mySplit) if Len(mySplit(i)) > int(antalTegn) then thetxt = thetxt & Left(mySplit(i),antalTegn) & "-" & linjeskift if Mid(mySplit(i),antalTegn+1,Len(mySplit(i))-antalTegn) > int(antalTegn) then thetxt = thetxt & DelOrd(Mid(mySplit(i),antalTegn+1,Len(mySplit(i))-antalTegn),antalTegn,linjeskift) & " " else thetxt = thetxt & Mid(mySplit(i),antalTegn+1,Len(mySplit(i))-antalTegn) & " " end if else thetxt = thetxt & mySplit(i) & " " end if next
Jeg forstår det ikke helt. Jeg virker ikke, selvom jeg kopiere hele koden direkte over uden redigering. Den kommer med samme fejl:
Fejltype: Der opstod en Microsoft VBScript-kompileringsfejl (0x800A03EA) Der er en syntaksfejl /filmbeskrivelse.asp, line 332 function DelOrd(txt,antalTegn,linjeskift)
Når jeg fjerner hele koden, virker alt fint, så database åbning/lukning er fin nok. Nogle idéer?
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.