Ey - her er en til de lidt mere hardcore vil jeg tro
Jeg er igang med at lave et vildere template-object. Til det skal jeg have lavet en lidt kryptisk array som blandt andet skal indeholde en række Dictionary-objekter.
Jeg ved at baggrunden for koder og fejl herunder kan virker ret så forvirrende, men det skyldes at hele koden i det hele taget kan være ret kryptisk når man ikke kender den til bunds
.
For at starte må jeg hellere skrive fejlmeddelsen:
Microsoft VBScript runtime error '800a0009'
Subscript out of range
/franzy/test/include/cls_tmpl.asp, line 184
Se det er jo en af de helt vildt forklarende fejl man bare elsker :? . Linje 184 kommer jeg til...
Her "starter" jeg arrayet (det er i forvejen blevet "dimmet" med "private g_oKeyList()"):
ReDim g_oKeyList(1,1)
set g_oKeyList(0,0) = Server.CreateObject("Scripting.Dictionary")
Meningen er at første dimension skal indeholde en integer som jeg skal bruge til at sammenligne med senere (specielt looping-id) og anden dimension indeholder en række Dictionary-objekter (hvert dictionary-objekt bruges skiftevis til hvert gennemgang af loopen).
Når man tilføre ord til listen (arrayet) kan det ske at der skal laves et nyt loop-sæt og derved skal array "udvides". Det gør jeg med denne kode. Dette er linje 184 (linjen fra fejlen):
ReDim preserve g_oKeyList(inLoop,loopDictSize)
Da fejlen opstår står der 2 i inLoop og 1 i loopDictSize. Altså det er første gang den "udvider" og den skal udvide sådan at dimension 1 nu har 2 rækker (i stedet for 1) mens dimension 2 stadig har 1. Jeg har prøvet hvor de begge blev udvidet men det gav også en fejl.
Jeg har også prøvet at kalde den med 1 i stedet for 2 og det accepterede den men det gjorde bare at resten at mit "program" ikke fungerede da den kræver at arrayet bliver "udvidet", og det kan jeg jo ikke bruge til så meget
.
Bagefter skal den så tilføre et dictionary-objekt til den nye række og så videre...
Jeg har på fornæmelsen at det hele er et array problem. Altså et eller andet med 0 og 1 og alt det der selvom jeg har prøvet en masse.
Hvis du skulle mene at det kan have noget at gøre med et dictionary-objekt i en array kan jeg da lige nævne at det har jeg gjort før uden nogen problemmer. Forskellen er at der dengang kun var 1 dimension i arrayet.
På forhånd tak ...