webForumDet fria alternativet

lägg till information i en array

ASP

9 svar · 345 visningar · startad av mattiasnordin

Medlem sedan maj 20012 080 inlägg
Frågan#1

Här kommer en riktig nybörjar fråga, hur lägger man till information i en array?
I mitt experiment så loopar jag fram alla filer i en katalog. Vill lägga till alla filnamn och sökvägen till dessa i en array. Har letat på tex devguru.com men de har inte något bra exempel som hjälper mig... :r

Kan någon visa ett enkelt exempel så att jag kommer igång?

Medlem sedan juni 20019 024 inlägg
#2
Dim arrBlaha(19) ' En dimension.
Dim arrZwei(2, 19) ' Två diemsioner.

For I = 0 To 19
      arrBlaha(I) = Now()
      arrZwei(0, I) = Date()
Next
Medlem sedan maj 20012 080 inlägg
#3

Jag är med på hur ditt exempel fungerar :OO. Men hur gör jag om jag vill få in namnen på filerna som ligger i en viss katalog i arrayen. Jag vet inte hur man får ut antalet filer i katalogen (loopa en räknare går ju men det finna väl bättre sätt?)? Måste man ange hur många fält en array ska ha innan man lagt till informationen?

<%
for each objItem in objFolder.Files 
Dim arrBlaha(x)
For I = 0 To x
arrBlaha(I) = objItem.name
Next
%>
Medlem sedan dec. 200012 464 inlägg
#4
dim  arr(),i,objItem
redim arr (objFolder.Files.count-1)
i = 0
for each objItem in objFolder.Files 
arr(I) = objItem.name
i = i + 1
Next

Det är bara vid redim som man kan ange storleken med hjälp av en variabel.

Varför behöver du flytta namnen till en array?

Medlem sedan maj 20012 080 inlägg
#5

Hej Lars!

Jag fick ditt exempel att fungera. Varför jag vill flytta upp datat i en array?
Jo, det är mest ett test. Jag labbar med att skapa en array med data baserad på vilka tecken som finns i ett filnamn. Beroende på om filnamnet text innehåller xxx[bil]xxx.jpg så ska den få vissa egenskaper i min array... Får se om jag får någon nytta av det hela.

(1) Hur stor får en array bli? Är det krävande för servern att hantera stora arrayer?

(2) Varför skriver du -1 i "objFolder.Files.count-1"?

(3) Jag får det att fungera med två dimensioner men inte med flera. Då får jag följande fel. Går det inte att ha fler än två dimensioner i en array?

<%	
dim  arr(), i, objItem
varNumberOfFiles = objFolder.Files.count-1
redim arr (varNumberOfFiles, varNumberOfFiles, varNumberOfFiles, varNumberOfFiles)
i = 0
for each objItem in objFolder.Files 
	
	arr(0,i) = objItem.name		' 0 = Filename
	arr(1,i) = "testtestst"		' 1 = Short Name
	arr(2,i) = "Access"		' 2 = Access Level
	arr(3,i) = "kategori"		' 3 = Category
	
i = i + 1			
Next
%>

**Microsoft VBScript runtime error '800a0009'

Subscript out of range

/vb_versionen/show_links.asp, line 37**

Medlem sedan dec. 200012 464 inlägg
#6
  1. Beror på hur mycket minne du har om det skall förbli hanterbart.

  2. Om man skriver

dim y(2)

så är 2 det högsta indexet i arrayen. Eftersom index börjar på 0 så finns det plats för 3 element i arrayen.

  1. Du kan ha flera dimensioner, men det går bara att göra redim på den yttersta.
Medlem sedan maj 20012 080 inlägg
#7

Ok, man lär sig av detta märker jag...
Jag trodde att man kunde göra så här men nu får jag ett annat fel. Nämligen att minnet är fullt. Kan det vara sant? Jag har 512Mb ram på webservern.

<%	
varNumberOfFiles = objFolder.Files.count-1
response.write varNumberOfFiles
dim  arr(50, 50, 50, 50)
dim u, i, objItem

i = 0
for each objItem in objFolder.Files 
	
	arr(0,i) = objItem.name		' 0 = Filename
	arr(1,i) = objItem.name		' 1 = Short Name
	arr(2,i) = objItem.name		' 2 = Access Level
	arr(3,i) = objItem.name		' 3 = Category
	
i = i + 1			
'response.write i
Next
%>

**fgf 25
Microsoft VBScript runtime error '800a0007'

Out of memory

/vb_versionen/show_links.asp, line 40**

Medlem sedan dec. 200012 464 inlägg
#8

Om du har fyra dimensioner så blir det någon slags hyperkub.

51*51*51*51*16=? Mer än 100M i alla fall.

dim  arr(50, 3) ' 51 rader med 4 kolumner i varje rad.

borde vara ok

Medlem sedan maj 20012 080 inlägg
#9

hmmm... Jag gör ju något basic syntaxfel här käns det som. Jag får ju inte ens detta att fungera. Vad gör jag för fel?

<%	
dim  arr(5, 5, 5, 5)
dim i
arr(0,1) = "objItem.name"		
arr(1,1) = "tes tobjItem.name"	
arr(2,1) = "fdsa fobjItem.name"	
arr(3,1) = "fdsaf objItem.name"	
%>

<hr>
<%= arr(1,1) %>
<hr>

:l

Medlem sedan maj 20012 080 inlägg
#10

OK :)

Jag har tolkat det här med arrayer och dimensioner helt fel märker jag... Nu tror jag att jag har grepp på det här.

Hejja Uppsala ! ;)

257 ms totalt · 4 externa anrop · v20260731065814-full.e96017d9
122 ms — deklarationer (db)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)
127 ms — ändringar (db)