Avatar billede netro Nybegynder
15. februar 2005 - 12:41 Der er 8 kommentarer og
1 løsning

Applikationsvariabel og to-dimensionelt array

Er det muligt at anvende en applikationsvariabel som et to-dimensionelt array uden først at erklære en lokal variabel?

Dim Arr(3, 2)
Arr(0, 1) = "bumbum"
Redim Preserve Arr(3, 7)
Arr(2, 4) = "blabla"

Application("Test") = Arr

Ovenstående virker, men jeg vil gerne benytte Application("Test") i stedet for Arr. Ellers skal jeg køre en løkke med en masse assignments, når jeg skal have Application("Test") overført til Arr igen. Kan det lade sig gøre?
Avatar billede ldanielsen Nybegynder
15. februar 2005 - 14:03 #1
Kort fortalt ja!

Du laver et array, og du siger

Application("Test") = myArray

Derefter kan du vælge at bruge Applicationvariablen direkte:

Response.Write(Application("Test")(0, 1))

eller hente den over i en lokal variabel

myArray = Application("Test")

Det er enkelt og det virker
Avatar billede netro Nybegynder
15. februar 2005 - 15:41 #2
Ja, øverste assignment fungerer fint, men jeg kan ikke gøre det den anden vej. Det giver en type mismatch (også selvom jeg allokerer plads først):

Dim Arr()
Redim Arr(UBound(Application("test"), 1), UBound(Application("test"), 2))
Arr = Application("Test")

Jeg kan heller ikke tildele værdier til variablen direkte. Det giver ingen fejl, men værdien bliver simpelthen ikke gemt i arrayet:

Application("Test")(0, 1) = "blabla"
Avatar billede netro Nybegynder
15. februar 2005 - 15:47 #3
Jeg tjekker naturligvis, at Application("test") faktisk er et array, inden jeg assigner.

If IsArray(Application("test")) ......
Avatar billede ldanielsen Nybegynder
16. februar 2005 - 12:11 #4
Er det en Win 2000 eller Win 2003 server?
Avatar billede netro Nybegynder
16. februar 2005 - 16:06 #5
2K - men nu har jeg fundet ud af noget af det.

Følgende fungerer som sagt ikke:

Dim Arr()
Redim Arr(UBound(Application("test"), 1), UBound(Application("test"), 2))
Arr = Application("Test")

Men det gør dette:

Dim Arr
Arr = Application("Test")

Dog ved jeg stadig ikke, hvorfor man ikke kan assigne direkte til a-variablen:

Dim Arr(0, 1)
Application("Test")(0, 1) = "blabla"
Response.Write Application("Test")(0, 1)
Avatar billede netro Nybegynder
16. februar 2005 - 16:10 #6
Sidste tre linier skulle selvfølgelig have set sådan ud:

Dim Arr(0, 1)
Application("Test") = Arr
Application("Test")(0, 1) = "blabla"
Response.Write Application("Test")(0, 1)
Avatar billede netro Nybegynder
10. marts 2005 - 11:55 #7
Nå, det fandt jeg aldrig ud af, men det gør ikke så meget alligevel.

VIl du have points?
Avatar billede ldanielsen Nybegynder
14. marts 2005 - 12:48 #8
Næ, jeg fulgte den jo ikke rigtig til dørs ...
Avatar billede netro Nybegynder
14. marts 2005 - 15:31 #9
Ok. Men tak for indsatsen.
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