05. april 2005 - 17:18Der er
17 kommentarer og 1 løsning
array og dic
Hey E
IIS5.0/ASP/IE
Hvordan skaber jeg et array ud fra disse data?
Målet er at lavet et array der er ligesom dette: Width = Array(45,50,23,23,60,45,45)
kode: 'her hentes fra en db hvilke tal der skal med i arrayet: strIndhold2 = "1;2;3;4;5;6;7;"
'dic opsættes med tal værdi for hver nr: Set dic = Server.CreateObject("Scripting.Dictionary") dic.Add "1", 45 dic.Add "2", 50 dic.Add "3", 23 dic.Add "4", 23 dic.Add "5", 60 dic.Add "6", 45 dic.Add "7", 45
Dim arrWidth, strArray2 'her prøver jeg så på at skabe Width Arrayet: strArray2 = Split(strIndhold2,",") for i = 0 to ubound(strArray2) Width = dic(strArray2(i)) next
men det fejler når jeg skal udskrive width(i): <td width="<%=Width(i)%>">bla bla</td> med fejlen: Typer stemmer ikke overens i ovenstående linje.
men er det ikke fordi at et array skal defineres med en størrelse? Width = dic(strArray2(i)) ... vil det ikke bare sætte Width = tallet som dic peger på?
kan du så ikke gøre sådan her <% for i = 0 to ubound(arrCustom2) - 1%> <td class="lodret" width="<%=dic(i&"")%>" height="79px"><%=(OverskriftAll(arrCustom2(i)))%></td> <% next %>
Jeg tror bare at hvis du ikke definerer en Width et sted som fx Dim Width(7) Så vil det jo ikke være et array Når du så laver denne her Width = dic(strArray2(i)) Så vil Width vel bare være den ene værdi? Som jeg har lært det er Array i asp ikke dynamisk
Men hvis du ved der er fx max 20 muligheder så kan du jo erklære Dim Width(20) og i din løkke kan du så gøre Width(i) = dic(strArray2(i)) Så burde hver værdi blive indsat i arrayet
med denne løkke strArray2 = Split(strIndhold2,";") for i = 0 to ubound(strArray2) Width = dic(strArray2(i)) next
med denne td: <td class="lodret" width="<%=Width%>"
er bredden ikke korrekt. Bredden er for lille dvs. at den er kun lige så stor som teksten inde i. dvs at dic ikke samles i et array.
med denne løkke strArray2 = Split(strIndhold2,";") for i = 0 to ubound(strArray2) Width = width + dic(strArray2(i)) next med denne td: <td class="lodret" width="<%=Width%>"
bliver Width lagt sammen til en sum så td bliver MEGET bred (300px)
så vi er tilbage hvor tal 1 2 og 3 osv skal have sin egen talværdi der skal passe til 1 2 og 3 osv, som så skal samles i et array...
Det er klart Med den første metode bliver Width sat til den sidste dic(strArray2(i)) i din løkke I den anden lægger du dem sammen Prøv strArray2 = Split(strIndhold2,";") for i = 0 to ubound(strArray2) Width = width & "," & dic(strArray2(i)) next Width = Split(Width,",") og så <td class="lodret" width="<%=Width(i+1)%>" ...' så må Width blive til en kommaspereret streng for dernæst at blive et array splittet efterkommaerne Grunden til i+1 er at den første plads vil være tom
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.