webForumDet fria alternativet

Trevlig funktion för att skapa en list

ASP

6 svar · 245 visningar · startad av Jesper T

Medlem sedan nov. 20017 144 inlägg
Frågan#1

Tanken är att min funktion skall skapa en lista av text med radbrytningar. Men är det fler än en så blir det en <li></li> för mycke. Och sätter jag till -1 efter ubound så funkar det inte när det bara är en rad.
Måste jag kladda med if-satser här, eller är det någon som hommer på något smart trick?

Function makelist(byVal inpt)
Dim inp,i
inp=split(inpt,vbcrlf)
	For i = 0 to ubound(inp)
		output = output & "<li>"& inp(i) &"</li>"& vbcrlf
	Next
	makelist = "<ul>"& vbcrlf & output & vbcrlf &"</ul>"
End function
Medlem sedan dec. 20003 887 inlägg
#2

Möjligen...

inp = split(inpt, vbcrlf)

output = join(inp, "</li><li>")
output = "<ul><li>" & output & "</li></ul>"
Medlem sedan nov. 20017 144 inlägg
#3

Samma sak uppstår... (min hjärna håller på att skrumpna)

Medlem sedan dec. 20003 887 inlägg
#4

Isånnafall så verkar ju din inpt innehålla ett tomt sista fält om det är fler än ett fält...

Medlem sedan nov. 20017 144 inlägg
#5

Borde den då inte försvinna med trim()

Medlem sedan dec. 20003 887 inlägg
#6

Nja... det är en radbrytning för mycket du har isånnafall och inte mellanslag.

Medlem sedan nov. 20017 144 inlägg
#7

Du hade rätt. Det var en för mycket där... :r
BTW: Varför köra split/join i stället för en replace?

Function makelist(byVal inpt)
Dim output
output = replace(trim(inpt),vbcrlf,"</li><li>")
makelist = "<ul><li>" & output & "</li></ul>"
End function
249 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
121 ms — deklarationer (db)
0 ms — hämta statistik (cache)
125 ms — hämta tråd, inlägg och bilagor (db)
119 ms — ändringar (db)