Klurig radbrytning?

ASP

8 svar · 295 visningar · startad av ikolito

Medlem sedan okt. 200055 inlägg
Trådstart#1

Jag undrar om det är någon som kan hjälpa mig med att göra så att det blir radbrytning automatiskt om det blir för långa ord.. t ex om någon skriver ett sånt här inlägg i en gästbok "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" så blir ju normalt tablen förstörd, men jag vill ha en funktion som delar upp det på flera rader om det blir för långt.

Medlem sedan dec. 19996 721 inlägg
#2

Tror att frågan varit upp ett par gånger här. Sök lite så hittar du säkert något.

mvh

Medlem sedan okt. 200055 inlägg
#3

nej jag har sökt massor med den ända hjälp jag hittar är hur man gör vanlig radbrytnings encodning... inte hur man gör för att den ska avbryta vid för långa ord.

Medlem sedan mars 20007 896 inlägg
#4
function bryt(sText)
sLen = Len(sText)
If sLen > 60 then
Response.Write Left(sText, 60) & "<br>" & Right(sText, sLen - 60)
Else
Response.Write sText
End If
End Function

myText = "hallåhallåhallåhallåhallåhallåhallåhallåhallåhallåhallåhallåhallåhallåhallåhallåhallåhallåhallåhallåhallåhallå"
Response.Write bryt(myText)

Kom på att ovanstående kod bryter även hela meningar och rader = inge bra :)

Så här kan man lösa det:

myText = "Hej där jag vill bara säga hallåhallåhallåhallåhallåhallåhallåhallåhallåhallåhallåhallåhallåhallåhallåhallåhallåhallåhallåhallåhallåhallå"
arrText = split(myText, " ")
countText = uBound(arrText) + 1
X = 0
Do Until X = countText
Response.Write bryt(arrText(X))
X = X + 1
Loop

Nu borde det funka :)
Notera att samma funktion används i koden nedan.

Medlem sedan okt. 200055 inlägg
#5

prövade det där men resultat blev detta att den tog bort alla mellanslag... alltså det blev såhär "Hejdärjagvillbarasägahallåhallåhallåhallåhallåhalfffffffffffffffflåhallåhallåhall
åhallåhallåhallåhallåhallåhallåhallåhallåhallåhallåhallåhallåhallå "

Medlem sedan mars 20007 896 inlägg
#6

Självklart det var klantigt av mig... så här borde det se ut:

function bryt(sText)
sLen = Len(sText)
If sLen > 60 then
Response.Write Left(sText, 60) & "<br>" & Right(sText, sLen - 60)
Else
Response.Write sText
End If
End Function

myText = "Hej där jag vill bara säga hallåhallåhallåhallåhallåhallåhallåhallåhallåhallåhallåhallåhallåhallåhallåhallåhallåhallåhallåhallåhallåhallå"
arrText = split(myText, " ")
countText = uBound(arrText) + 1
X = 0
Do Until X = countText
Response.Write bryt(arrText(X)) & " "
X = X + 1
Loop
Medlem sedan okt. 200055 inlägg
#7

den här funktionen bryter ju bara raden första gången(första raden alltså).. :/

Medlem sedan nov. 200021 inlägg
#8

Varför inte styra det hela i formuläret bara? Vore inte det en enkel lösning, eller har jag helt massupp*****t det hela?

textarea wrap=physical

Vill inte ha några taskiga svar nu ;Þ

Medlem sedan mars 20007 896 inlägg
#9

Nej, jag har märkt att problemet inte är att den bara bryter första raden, utan den bryter juh bara ord, inte meningar... Därför kan längden på rader bli olika långa.

Hoppas du förstår min skumma förklaring :)

253 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
126 ms — deklarationer (db)
0 ms — hämta statistik (cache)
124 ms — hämta tråd, inlägg och bilagor (db)
121 ms — ändringar (db)