Avatar billede chrisrj Forsker
26. juli 2003 - 11:25 Der er 15 kommentarer og
1 løsning

Kan man lave et dynamisk array i asp?

Som spg, lyder vil jeg gerne vide om man kan lave et dynamisk array i asp?

Hvis ja, hvordan gør man så det?
Hvis nej, hvad kan man så gøre?

På forhånd tak.
Avatar billede nmh Nybegynder
26. juli 2003 - 11:31 #1
Ja det kan man sagtens.
Her er et eksempel.
dim A()
'Hvis du vil ændre størrelse
Redim A(10)

Du kan oggså starte med f.ks.
Redim A(10)
'redimensioner:
Redim A(100)

Hvis du vil bevare indholet, nå du redimensionerer:
Redim Preserve A(200)
Avatar billede nmh Nybegynder
26. juli 2003 - 11:34 #2
Et andet eksempel på brug af dynamiske tabeller:
dim A, txt
txt="Ole,Per,Bent,Tut"
A=split(txt,",")
Nu er A et array med øvre grænse 3 (Ubound(A) kan man spørge på)
og A(0) er "Ole", A(1) er "Per" ... A(3) er "Tut"

Man kan samle igen: s=join(A,",")
Avatar billede chrisrj Forsker
26. juli 2003 - 11:34 #3
Ja, men det er vel ikke helt dynamisk, vel?

Jeg skal lave et array, baseret på antallet af poster i min tabel i db'en.

Man kan vel ikke skrive sådan:

set rse = Conn.execute ("select count(id) as antallet from vagtplan"

dim A(rse("antallet"))

Eller hvad?
Avatar billede chrisrj Forsker
26. juli 2003 - 11:35 #4
Mit indlæg var svar på dit første indlæg.
Avatar billede nmh Nybegynder
26. juli 2003 - 11:39 #5
Nej, ikke helt. Når du har fundet ud af størrelsen, som her altså er gemt i N=rse("antallet") skal nu skrive

(Kommer N med sikkerhed ud som et heltal?
Ellers N=Clng(rse("antallet")            )

Redim A(N) hvor A til at begynde med blot er erklæret således dim A()
Avatar billede chrisrj Forsker
26. juli 2003 - 11:41 #6
Prøver lige...
Avatar billede medions Nybegynder
26. juli 2003 - 11:45 #7
En smart måde at kreæere et dynamisk Array er oxo at bruge VBs Indbygget funtion Split()

Fx.

strStreng = "Rune, Camilla, Hans, Christian"

'Og så få det ned i et Array sådan her:
arrNavne = Split(strStreng, ",")

'Så kan du så udskrive den i en forlykke:
For i = 0 To UBound(arrNavne)
  Response.Write(arrNavne(i))
Next

Det der gør det nemt ved brug af en kommasepereret variabel er at den er nem at ha' med at gøre og nem at tilføje nye poster i!

//>Rune
Avatar billede chrisrj Forsker
26. juli 2003 - 11:46 #8
nmh -> Stort!! Din løsning er perfekt!! :D
Avatar billede chrisrj Forsker
26. juli 2003 - 11:47 #9
Rune -> Desværre.... Du kom for sendt. ;)
Avatar billede medions Nybegynder
26. juli 2003 - 11:49 #10
;o)
Avatar billede nmh Nybegynder
26. juli 2003 - 11:53 #11
Ups: jeg kom til at skrive forlykke!! skal være forløkke!!!
Tak for point.

I øvrigt er Runes bemærkning om split god at tage ad notam.
split har en partner. Join
Et eksempel:
s=join(A,"*"). Nu er A's elementer gemt i s med * som skilletegn.
s=join(A,"") Nu er A's elementer stillet efter hinanden i strengen s uden skille-tegn. Det er en meget hurtig måde at lægge tekststrenge sammen på.
Avatar billede nmh Nybegynder
26. juli 2003 - 11:59 #12
Hej Rune: I dag var det dig, der kom til at gentage mig. Se min kommentar nr. 2.
;o)
Avatar billede chrisrj Forsker
26. juli 2003 - 11:59 #13
Prøv at se her http://www.eksperten.dk/spm/379353.

Det er hvad jeg skulle bruge det til. (scriptet er dog lavet noget om siden da)
Avatar billede medions Nybegynder
27. juli 2003 - 20:18 #14
nmh> *G* ok så da ;o) Har du ICQ eller MSN?

//>Rune
Avatar billede nmh Nybegynder
27. juli 2003 - 20:37 #15
Rune>Jeg har hverken ICQ eller MSN. Hvorfor?
Avatar billede medions Nybegynder
27. juli 2003 - 20:46 #16
Well, kunne da godt tænke mig at få en chat med dig...

//>Rune
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