11. marts 2006 - 08:38
Der er
2 kommentarer og
1 løsning
Len på array
Hej
Har et.. matematisk problem, er det nok :)
Har en database hvor jeg laver et sql kald og putter dette i et array. (Coolmenus), derefter udskriver jeg dette.
Foroven putter jeg mname over i variablen lngLen, og så kommer problemet.
lngLen = Len(mname) * 10
Lad os sige at der er et menupunkt der er på 10 tegn og et på 30 tegn, i udskrivningen af mname kan man definere hvor langt feltet skal være, dette er så lngLen.
Men propertionelt hænger det jo ikke sammen med at man blot ganger med 10 feks. Dvs. menupunktet på 10 tegn bliver længden 100 og menutitlen på 30 tegn bliver 300. Hvert menupunkt er i en td hvor længden af denne er mname, og derfor er der for meget mellemrum i den td med som er 300.
Er der nogen der kan hjælpe med en formel på dette, gode point gives da jeg lige nu er løbet ind i en mur :)
11. marts 2006 - 13:00
#2
Jeps,
jeg har følgende kode:
mTitle = rsarr(4,row)
lngLen = Len(mname) * 10
'Making menu item
if mTitle = "" then
Response.write("oCMenu.makeMenu('" & menuID & "','" & parent & "','" & mName & "')" & vbcrlf)
else
Response.write("oCMenu.makeMenu('" & menuID & "','" &parent & "','" & mName & "','default.asp?id=" & mlink & "&lang=" & lang & "','','" & lngLen & "')" & vbcrlf)
end if
row = row + 1
loop
End Sub
I selve linjen der laver menupunktet er der angivet lngLen, denne definerer bredden på menupunktet.
Output er som følger:
oCMenu.makeMenu('m1','','Test','default.asp?id=1&lang=','','90')
oCMenu.makeMenu('m3','','denne er gentligt meget god','default.asp?id=3&lang=','','270')
oCMenu.makeMenu('m4','','ahahah','default.asp?id=4&lang=','','60')
Den sidste talværdi er længden på feltet, men ved linje nr. 2 er bredden 270, 27 tegn x 10, derfor for bred.
Man kan selvfølgelig angive det således, manuelt, men der må være en smartere måde,
if len(mname)=1 then
lngLen = Len(mname) * 10
end if
if len(mname)=2 then
lngLen = Len(mname) * 9
end if
Så bredderne passer
Håber jeg har forklaret mig godt nok, er lidt svært at forklare
12. marts 2006 - 17:00
#3
Ok, fandt selv en løsning :)
if len(mname)<10 then
lngLen = Len(mname) * 10
end if
if len(mname)>10 then
lngLen = Len(mname) * 9
end if
if len(mname)>20 then
lngLen = Len(mname) * 8
end if