Avatar billede farving Nybegynder
12. marts 2006 - 20:37 Der er 17 kommentarer og
1 løsning

Ubound på dimensionelt array

Jeg sidder og har et problem med at lave en UBound på mit dimensionelle array...

hvis jeg har 4 dimensioner hvordan laver jeg så UBound på dimension 2?

Mvh Carsten
Avatar billede tofte Juniormester
12. marts 2006 - 20:45 #1
UBound(mitArray,2)
Avatar billede tofte Juniormester
12. marts 2006 - 20:46 #2
Avatar billede farving Nybegynder
12. marts 2006 - 20:51 #3
mange tak,

Ved godt det ik er helt inde for kategorien, og du skal nok få pointene, men min menu virker ikke helt optimalt www.farving.dk/carsten/menu_try1.asp som du kan se henter den sig selv...

her er koden for funktionen... Den skulle jo gerne bare tilføje næste dimension som passer til den del af dimensionen der bliver requested (hvis du forstår)

for a = 0 to UBound(menu,1)
' Udskriver grundmenuen
response.write "<a href='?menu=" & a & "' Onclick=""reloader('main',menuRef(a,0,0,0),1);"">" & menu(a,0,0,0)& "</a><br>"
    if request.querystring("menu") <> "" then
    for b = 0 to UBound(menu,2)
    ' Udskriver undermenuer if requested
    response.write "<a href='?menu=" & a & "&submenu=" & b & "' Onclick=""reloader('main', menuRef(a,b,0,0),1);"">" & menu(a,b,0,0) & "</a><br>"
        if request.querystring("submenu") <> "" then
        for c = 0 to UBound(menu,3)
        ' Udskriver
        response.write "<a href='?menu=" & a & "&submenu=" & b & "&sub=" & c & "' Onclick=""reloader('main', menuRef(a,b,c,0),1);"">" & menu(a,b,c,0) & "</a><br>"
            if request.querystring("sub") <> "" then
            for d = 0 to UBound(menu,4)
            ' Udskriver
            response.write "<a href='?menu=" & a & "&submenu=" & b & "&sub=" & c & "undersub=" & d & "' Onclick=""reloader('main', menuRef(a,b,c,d),1);"">" & menu(a,b,c,d) & "</a><br>"
            next
            end if
        next
        end if
    next
    end if
next
Avatar billede tofte Juniormester
12. marts 2006 - 21:00 #4
jeg kan ikke gennemskue hvor det går galt ud fra den kode du har postet. Bliver nødt til at løbe for i aften.
Avatar billede farving Nybegynder
12. marts 2006 - 21:02 #5
okay, håber du vil hjælpe mig videre, men du får dine point for nu :)
Avatar billede tofte Juniormester
12. marts 2006 - 23:04 #6
Hvis du gider poste hele siden, er det nemmere at finde fejlen, så er jeg også selv fri for at lave testdata :-)
Avatar billede farving Nybegynder
13. marts 2006 - 21:22 #7
den er rimelig lang:

=====================
<html>
<head>
    <title>Nyt dokument</title>
    <meta name="generator" content="TSW WebCoder">
<style type="text/css">
    a:link{color:darkred;text-decoration:none;}
    a:visited{color:darkred;text-decoration:none;}
    a:active{color:green;text-decoration:none;}
    a:hover{color:yellow;text-decoration:none;}
</style>
<script language="javascript">
    <!--
    function reloader(framename, adresse, tid) {
      setTimeout(function(){parent[framename].location.href = adresse;}, tid)
    }
    -->
</script>
</head>

<body>
<%
' Hovedmenuen
dim menu    (1,10,10,10)
dim menuRef    (1,10,10,10)
menu    (0,0,0,0) = "Forside"
menuRef    (0,0,0,0) = "main.asp"
menu    (1,0,0,0) = "HTX"
menuRef    (1,0,0,0) = "htx/main.asp"
menu    (1,1,0,0) = "Biologi"
menuRef    (1,1,0,0) = "htx/biologi/main.asp"
menu    (1,2,0,0) = "Dansk"
menuRef    (1,2,0,0) = "htx/dansk/main.asp"
menu    (1,3,0,0) = "Engelsk"
menuRef    (1,3,0,0) = "htx/engelsk/main.asp"
menu    (1,4,0,0) = "Fysik"
menuRef    (1,4,0,0) = "htx/fysik/main.asp"
menu    (1,5,0,0) = "Kemi"
menuRef    (1,5,0,0) = "htx/kemi/main.asp"
menu    (1,6,0,0) = "Kommunikation/It"
menuRef    (1,6,0,0) = "htx/kom-it/main.asp"
menu    (1,6,1,0) = "Evaluering"
menuRef    (1,6,1,0) = "htx/kom-it/evaluering/main.asp"
menu    (1,6,1,1) = "Excel"
menuRef    (1,6,1,1) = "htx/kom-it/evaluering/excel.asp"
menu    (1,6,1,2) = "Word"
menuRef    (1,6,1,2) = "htx/kom-it/evaluering/word.asp"
menu    (1,6,1,3) = "PowerPoint"
menuRef    (1,6,1,3) = "htx/kom-it/evaluering/powerpoint.asp"
menu    (1,6,1,4) = "Konklusion"
menuRef    (1,6,1,4) = "htx/kom-it/evaluering/konklusion.asp"
menu    (1,7,0,0) = "Samfundsfag"
menuRef    (1,7,0,0) = "htx/samfundsfag/main.asp"
menu    (1,8,0,0) = "Teknologi"
menuRef    (1,8,0,0) = "htx/teknologi/main.asp"
menu    (1,8,1,0) = "Uge 1-3 2006"
menuRef    (1,8,1,0) = "htx/teknologi/ukendt/main.asp"
menu    (1,8,2,0) = "Uge 4-11 2006"
menuRef    (1,8,2,0) = "htx/teknologi/htx/teknologi/uge1-9/main.asp"
menu    (1,8,2,1) = "Produkt Beta"
menuRef    (1,8,2,1) = "htx/teknologi/htx/teknologi/uge1-9/Guess_Number_beta1.asp"
menu    (1,8,2,2) = "Hall of Fame"
menuRef    (1,8,2,2) = "htx/teknologi/htx/teknologi/uge1-9/statistik.asp"

for a = 0 to UBound(menu,1)
' Udskriver grundmenuen
response.write "<a href='?menu=" & a & "' Onclick=""reloader('main',menuRef(a,0,0,0),1);"">" & menu(a,0,0,0)& "</a><br>"
    if request.querystring("menu") <> "" then
    for b = 0 to UBound(menu,2)
    ' Udskriver undermenuer if requested
    response.write "<a href='?menu=" & a & "&submenu=" & b & "' Onclick=""reloader('main', menuRef(a,b,0,0),1);"">" & menu(a,b,0,0) & "</a><br>"
        if request.querystring("submenu") <> "" then
        for c = 0 to UBound(menu,3)
        ' Udskriver
        response.write "<a href='?menu=" & a & "&submenu=" & b & "&sub=" & c & "' Onclick=""reloader('main', menuRef(a,b,c,0),1);"">" & menu(a,b,c,0) & "</a><br>"
            if request.querystring("sub") <> "" then
            for d = 0 to UBound(menu,4)
            ' Udskriver
            response.write "<a href='?menu=" & a & "&submenu=" & b & "&sub=" & c & "undersub=" & d & "' Onclick=""reloader('main', menuRef(a,b,c,d),1);"">" & menu(a,b,c,d) & "</a><br>"
            next
            end if
        next
        end if
    next
    end if
next
%>
</body>
</html>
Avatar billede tofte Juniormester
13. marts 2006 - 23:15 #8
Et af dine problemer er, at du kører fra 0 til UBound, dette giver ikke indetholdet af dit array, men eks b løber fra 0 til 10 da 10 er den størrelse som du har defineret dit array til at have. Ved at du eks løber fra 0 og ikke 1 får du overskriften med igen da den ligger på 0.

Det er ikke en optimal metode du har valgt dig, da du kommer til at løbe arrayet igennem mange gange - men jeg kan desværre ikke sige hvad du skal bruge - men der er mange forskellige forslag på nettet. Men for at løse dit tilfælde kan man kontrollere om posten er tom med len > 0, så kommer menuen til at se nogenlunde ud. Jeg ved dog ikke om den ser ud som du har forestillet dig:
for a = 0 to UBound(menu,1)
' Udskriver grundmenuen
response.write "<a href='?menu=" & a & "' Onclick=""reloader('main','"&menuRef(a,0,0,0)&"',1);"">" & menu(a,0,0,0)& "</a><br>"
    if request.querystring("menu") <> "" then
    for b = 1 to UBound(menu,2)
    ' Udskriver undermenuer if requested
    if len(menu(a,b,0,0))> 0 then response.write "<a href='?menu=" & a & "&submenu=" & b & "' Onclick=""reloader('main', '"&menuRef(a,b,0,0)&"',1);"">" & menu(a,b,0,0) & "</a><br>"
        if request.querystring("submenu") <> "" then
        for c = 1 to UBound(menu,3)
        ' Udskriver
        if len(menu(a,b,c,0))> 0 then response.write "<a href='?menu=" & a & "&submenu=" & b & "&sub=" & c & "' Onclick=""reloader('main', menuRef(a,b,c,0),1);"">" & menu(a,b,c,0) & "</a><br>"
            if request.querystring("sub") <> "" then
            for d = 1 to UBound(menu,4)
            ' Udskriver
            if len(menu(a,b,c,d))> 0 then response.write "<a href='?menu=" & a & "&submenu=" & b & "&sub=" & c & "undersub=" & d & "' Onclick=""reloader('main', menuRef(a,b,c,d),1);"">" & menu(a,b,c,d) & "</a><br>"
            next
            end if
        next
        end if
    next
    end if
next
Avatar billede farving Nybegynder
13. marts 2006 - 23:21 #9
okay det fik da løst lidt af problemet, nu åbner den så bare alle undermenuer i den del af arrayet, kan godt være min gode del er forkert, men den skulle kun åbne den undermenu der bliver requested...

Og grunden til at jeg har valgt denne løsning, var at det var ca hvad jeg kunne finde frem til via min viden om ASP
Avatar billede farving Nybegynder
14. marts 2006 - 10:17 #10
Desuden "lukker" den ikke undermenuerne når man "forlader" dem, dvs hvis jeg trykker på biologi, så skulle den åbne (den menu som ikke er der endnu) og lukke alle andre undermenuer der er åbne...

Carsten
Avatar billede tofte Juniormester
14. marts 2006 - 21:05 #11
for a = 0 to UBound(menu,1)
' Udskriver grundmenuen
response.write "<a href='?menu=" & a & "' Onclick=""reloader('main','"&menuRef(a,0,0,0)&"',1);"">" & menu(a,0,0,0)& "</a><br>"
    if request.querystring("menu") <> "" then
    am=cint(request.querystring("menu"))
    for b = 1 to UBound(menu,2)
    ' Udskriver undermenuer if requested
    if am=a and len(menu(a,b,0,0))> 0 then response.write "<a href='?menu=" & a & "&submenu=" & b & "' Onclick=""reloader('main', '"&menuRef(a,b,0,0)&"',1);"">" & menu(a,b,0,0) & "</a><br>"
        if request.querystring("submenu") <> "" then
        bm=cint(request.querystring("submenu"))
        for c = 1 to UBound(menu,3)
        ' Udskriver
        if bm=b and am=a and len(menu(a,b,c,0))> 0 then response.write "<a href='?menu=" & a & "&submenu=" & b & "&sub=" & c & "' Onclick=""reloader('main', menuRef(a,b,c,0),1);"">" & menu(a,b,c,0) & "</a><br>"
            if request.querystring("sub") <> "" then
            cm=cint(request.querystring("sub"))
            for d = 1 to UBound(menu,4)
            ' Udskriver
            if cm=c and bm=b and am=a and len(menu(a,b,c,d))> 0 then response.write "<a href='?menu=" & a & "&submenu=" & b & "&sub=" & c & "&undersub=" & d & "' Onclick=""reloader('main', menuRef(a,b,c,d),1);"">" & menu(a,b,c,d) & "</a><br>"
            next
            end if
        next
        end if
    next
    end if
next
Avatar billede farving Nybegynder
14. marts 2006 - 21:13 #12
Se dertil ville jeg aldrig være kommet :)

Det ser ud til at virke, jeg takker mange gange for hjælpen...

Mvh Carsten
Avatar billede farving Nybegynder
14. marts 2006 - 21:17 #13
Nå der var jeg lige en tand for hurtigt, nu vil den ikke åbne noget fra dimension 4...
Avatar billede tofte Juniormester
15. marts 2006 - 07:57 #14
hvad mener du med "åbne" jeg kan godt se menuen til 4. dim?
Avatar billede farving Nybegynder
15. marts 2006 - 07:57 #15
kan jeg også, men den åbner ikke filen... i main...
Avatar billede tofte Juniormester
15. marts 2006 - 11:25 #16
ok, min fejl. Jeg har rettet lidt i din kode, men ikke fået det hele med. Jeg har rettet

reloader('main', menuRef(a,b,c,d),1);
til
reloader('main','"&menuRef(a,0,0,0)&"',1);
nogle da stederne, men jeg mangler stadig et eller to steder. Det er vigtigt med & og " da den ellers ikke afvikler det som asp, men bare skriver menuRef på siden.
Avatar billede farving Nybegynder
15. marts 2006 - 17:37 #17
jeps, ser ud til at det var fejlen...

Jeg siger utroligt mange gange tak :)
Avatar billede tofte Juniormester
15. marts 2006 - 18:21 #18
det var så lidt
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