Avatar billede reb Nybegynder
18. januar 2005 - 16:09 Der er 3 kommentarer og
1 løsning

Variabel dimensionering af Array

Hvad går glat ??

Jeg har en kode, som fra en formular modtager bla. informationer om hvormange varelinier, som jeg modtager fra min bruger af.

min tanke var så, at jeg ville lave et fler-dim array således:

-----------------------------------------------------------
antallinjer=Cint(request.Form("linieantal"))

Dim varelinie (antallinjer,7)

for i=0 to antallinjer

testvar=request.Form("varenr_"&i) 'ID til enhedsvalget forlinine

varelinie(i,0)=i 'FakturalinjeNr
'varelinie(i,1)=request.Form("enhed_"&i) 'ID til enhedsvalget forlinine
varInvoicedunitCodeListAgencyID="n/a" 'Ønskes frit format anvedes n/a
varelinie(i,2)=request.Form("linantal_"&i)'Antallet af varer knyttet til fakturalinje
varelinie(i,3)=Request.Form("Valutaenhed") 'DKK ID for valgt valuta-type
next
--------------------------------------------------------------

men når jeg gør således for jeg denne fejl:

Expected integer constant

/xml/processForm.asp, line 149

Dim varelinie (antallinjer,7)

Nogen som kan hjælpe ?
Avatar billede fennec Nybegynder
18. januar 2005 - 16:17 #1
Du skal bruge redim kaldet på den.

Dim varelinie
antallinjer=Cint(request.Form("linieantal"))
reDim varelinie(antallinjer,7)
Avatar billede reb Nybegynder
18. januar 2005 - 18:25 #2
Tak for hjælpen. Det virkede jo fint.. Forstår bare ikke helt hvorfor jeg ikke kan sætte dimensionerne på den direkte, uden at lave en reDim, men det vigtigste er jo at det virker.

Smid lige et svar.
Avatar billede fennec Nybegynder
19. januar 2005 - 09:10 #3
Det er fordi alle variabler bliver oprettet før koden afvikles. "antallinjer" har derfor ikke fået en værdi endnu. reDim "genoprettet" variablerne. Som en lille bonus har den også en ekstra parameter som hedder "Preserve" på denne måde slettes værdierne i et array ikke. Det er en god metode til at bruge i et loop.

dim temp
reDim temp(1)
temp(0) = "hej"
temp(1) = "med"
for f=1 to 3
  redim Preserve temp(ubound(temp)+1)
  temp(ubound(temp)) = "dig"
next
for f=0 to ubound(temp)
  Response.write temp(f)&"<br>"
next

.o) <-- One Eyed Jack
Avatar billede reb Nybegynder
19. januar 2005 - 09:16 #4
Tak for den yderligere information. Skulle lige til at komme med et tillægsspørgsmål, men det har jeg selv fået løst nu. :-) One Eyed Willy selv ...
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