Avatar billede reino Nybegynder
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 :)
Avatar billede mekawi Nybegynder
11. marts 2006 - 09:46 #1
Jeg er ikke helt sikker på jeg forstår din problemstilling. Kan du beskrive det lidt bedre?
Avatar billede reino Nybegynder
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
Avatar billede reino Nybegynder
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
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester