Avatar billede mikkel_strack Nybegynder
17. august 2003 - 07:38 Der er 5 kommentarer og
2 løsninger

tilføj element til array

Dim liste, mitArray

liste = "abe, kat, høne"

mitArray = Split(liste,",")

Har nu et array som er for lille - for jeg vil ha et med præcis 5 hvor jeg vil fylde de to sidste pladser ud med 'hund' og 'hund'

jeg ved det er noget med Redim - men aner ikke hvordan jeg skal få de to 'hunde' ind i mit array.

Mikkel
Avatar billede hossein Nybegynder
17. august 2003 - 09:12 #1
Avatar billede eagleeye Praktikant
17. august 2003 - 10:49 #2
Jeps du skal bruge redim. Du kan overveje de funktioner hossein har vist men her er princippet i at tilføje til et array, den simple udgave ;)


Dim liste, mitArray

liste = "abe, kat, høne"

mitArray = Split(liste,",")

'Tilføj et elemet til mitArray
redim preserve mitArray(ubound(mitArray)+1)
mitArray(ubound(mitArray)) = "hund"

'Tilføj endnu et elemet til mitArray
redim preserve mitArray(ubound(mitArray)+1)
mitArray(ubound(mitArray)) = "hund"

'Udskrive arrayet
for i = lbound(mitArray) to ubound(mitArray)
  Response.write mitArray(i) & "<br>"
next
Avatar billede mikkel_strack Nybegynder
17. august 2003 - 21:11 #3
Alletiders :o)

Hvis nu abe, kat og høne ligger i en database...hvordan får jeg så smidt dem ind i arrayet først?? Har set nogen snakker om noget rs.getrows - men kan jeg ik rigtig få til at virke.

Skriv iøvrigt lige svar begge to så I kan få points
Avatar billede hossein Nybegynder
17. august 2003 - 23:49 #4
Avatar billede eagleeye Praktikant
18. august 2003 - 00:33 #5
Et andet eks med getRows:
http://activedeveloper.dk/aspdigital/2001081401.asp

Hvis du vil bygge dit array fra DB og getrows så det noget med:
SQL = "SELECT kolonnenavn FROM tabelnavn"
Set rs = Conn.Execute(SQL)
mitArray = rs.GetRows()
Avatar billede mikkel_strack Nybegynder
21. august 2003 - 12:52 #6
Det endte med jeg lavede det på følgende måde - da jeg så vidt jeg kunne forstå ikke kunne slette et element fra et array hvis jeg brugte getrows.

dim strPics, arrPics

Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("db/pixie.mdb")
Conn.Open DSN

' SQL forespørgsel
strSQL = "Select filnavn from personer"
' Udfør forespørgsel (rs indeholder nu resultatet)
Set rs = Conn.Execute(strSQL)


While Not rs.EOF
 
  strPics = strPics & rs("filnavn") & ", "
  rs.MoveNext()
Wend

rs.close
set rs = nothing


arrPics = Split(strPics,",")

for i=ubound(arrPics) to ubound(arrPics)
redim preserve arrPics((i)-1)
next

for i=(ubound(arrPics)+1) to 12
  redim preserve arrPics((i)+1)
  arrPics(i)="tom.gif"
next

.......

Jeg skulle jo lave et array på 13 elementer, hvoraf et ukendt antal skulle hentes fra en database. I tilfælde af at der i databasen var mindre end 13, skulle resten fyldes ud med en allerede bestemt type element.

Det virker som lidt af en omvej, fordi jeg på den måde er nødt til først at slette det tomme element som jeg får pga det sidste ',' i
Avatar billede mikkel_strack Nybegynder
21. august 2003 - 12:56 #7
...hov - ramte 'udfør'. Forsætter lige..

Det virker som lidt af en omvej, fordi jeg på den måde er nødt til først at slette det tomme element som jeg får pga det sidste ',' i strPics = strPics & rs("filnavn") & ", "

Derudover får jeg af en eller anden uvis grund et array med et element for meget ved:
for i=(ubound(arrPics)+1) to 12
  redim preserve arrPics((i)+1)
  arrPics(i)="tom.gif"
next
...det betyder dog ikke så meget....men jeg undres??

Men som sagt...det virker fint - synes måske bare det er lidt en omvej.

Tak for svar iøvrigt :o)
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