---
title: "Dynamiska arrayer"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/116015-dynamiska-arrayer"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "Eclipse"
published: "2004-11-16T09:19:19.000Z"
updated: "2004-11-16T12:57:00.000Z"
replies: 14
views: 484
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/asp/116015-dynamiska-arrayer"
---

# Dynamiska arrayer

## #1 — Eclipse, 2004-11-16T09:19Z

Hur lägger jag till värde i en array?

Permalänk: https://www.webforum.nu/p/116015

## #2 — LarsG, 2004-11-16T09:30Z

Hur menar du?

```
dim x()
for i = 0 to 10
   x(i) = i
next
```

Permalänk: https://www.webforum.nu/p/1484850

## #3 — Eclipse, 2004-11-16T09:38Z

Tack Mr ASP

Jag vet inte vad jag menar...

```
SQL = "SELECT a.intID, a.intParentID, a.strName, a.strURL, a.bolView " _
& " FROM [catalogueSE] as a WHERE a.intParentID = 0 " _
& " ORDER BY a.strName"
set mySQL = Conn.Execute(SQL)

IF NOT mySQL.EOF THEN listLevel0 = mySQL.GetRows()
myRow = listLevel0
response.write "Level 0: " & UBound(myRow, 2) & "<BR>"
FOR j = 0 TO UBound(myRow,2)
	IF myRow(1,j) = 0 THEN response.write myRow(2,j) & "<BR>"
NEXT

' ## CHECK FOR SUBMENU
FOR j = 0 TO UBound(myRow,2)
	SQL = "SELECT a.intID, a.intParentID, a.strName, a.strURL, a.bolView " _
	& " FROM [catalogueSE] as a WHERE a.intParentID = " & myRow(0,j) _
	& " ORDER BY a.strName "
	set mySQL = Conn.Execute(SQL)
	IF NOT mySQL.EOF THEN
		listLevel1 = mySQL.GetRows()
		myRow1 = listLevel1
		response.write "Level 1: " & UBound(myRow1, 2) & "<BR>"
		FOR i = 0 TO UBound(myRow1,2)
			response.write myRow1(2,i) & "<BR>"
		NEXT
	END IF
NEXT
```

Universums sunkigaste kod... Men det är inte läge...

Jag håller på med dTree och jag måste skriva rubrikerna i rätt ordning och i bokstavsordning. Det fungerar inte annars. Inte mellan olika sidor. Endast på samma sida.

Permalänk: https://www.webforum.nu/p/1484853

## #4 — Eclipse, 2004-11-16T09:45Z

```
Jag tror resultatet ska bli så här. Jag har markerat de två med underrubriker.

Level 0: 9
1. ID:28 Allmänt om grafit (& elborstar)
2. ID:1 Borsthållare
[b]3. ID:3 Elborstar[/b]
4. ID:17 Impregneringslack
5. ID:4 Ingjutningsmassa
[b]6. ID:18 Kondensatorer[/b]
7. ID:16 Lindningstråd
8. ID:2 Släpringar
9. ID:24 Termistorer
10. ID:23 Termokontakter
Level 1:5
11. ID:3 Bakelitgrafit
12. ID:3 Elektrografitborstar
13. ID:3 Hårdkol
14. ID:3 Koppargrafitborstar
15. ID:3 Naturgrafitborstar
16. ID:3 Silvergrafitborstar
Level 1: 3
17. ID:18 Belysningskondensatorer
18. ID:18 Driftkondensatorer
19. ID:18 Elektrolytkondensatorer
20. ID:18 Startkondensatorer
```

Permalänk: https://www.webforum.nu/p/1484857

## #5 — @nders, 2004-11-16T10:03Z

Vad menar du med *rätt ordning* och  *bokstavsordning*? Jag förstår inte hur det ska vara sorterat på två sätt samtidigt... :/

Men, för att svara på frågan i topic; använd [Redim Preserve](http://www.devguru.com/technologies/wml/vbscript/quickref/redim.html) för att ändra storleken på en array.

Permalänk: https://www.webforum.nu/p/1484867

## #6 — Eclipse, 2004-11-16T10:10Z

Det är rekursiv kod.

```
Som det ser ut idag

<SCRIPT TYPE="text/javascript">
<!--
d = new dTree('d');
d.add(0,-1,'Produktkatalog');
d.add(28,0,'Allmänt om grafit (& elborstar) +', '/admin/catalogueSE/index.asp?ID=28');
d.add(30,3,'Bakelitgrafit +', '/admin/catalogueSE/index.asp?ID=30');
d.add(22,18,'Belysningskondensatorer +', '/admin/catalogueSE/index.asp?ID=22');
d.add(1,0,'Borsthållare +', '/admin/catalogueSE/index.asp?ID=1');
d.add(20,18,'Driftkondensatorer +', '/admin/catalogueSE/index.asp?ID=20');
d.add(3,0,'Elborstar +', '/admin/catalogueSE/index.asp?ID=3');
d.add(15,3,'Elektrografitborstar +', '/admin/catalogueSE/index.asp?ID=15');
d.add(21,18,'Elektrolytkondensatorer +', '/admin/catalogueSE/index.asp?ID=21');
d.add(31,3,'Hårdkol +', '/admin/catalogueSE/index.asp?ID=31');
d.add(17,0,'Impregneringslack +', '/admin/catalogueSE/index.asp?ID=17');
d.add(4,0,'Ingjutningsmassa +', '/admin/catalogueSE/index.asp?ID=4');
d.add(18,0,'Kondensatorer +', '/admin/catalogueSE/index.asp?ID=18');
d.add(12,3,'Koppargrafitborstar +', '/admin/catalogueSE/index.asp?ID=12');
d.add(16,0,'Lindningstråd +', '/admin/catalogueSE/index.asp?ID=16');
d.add(32,3,'Naturgrafitborstar +', '/admin/catalogueSE/index.asp?ID=32');
d.add(5,3,'Silvergrafitborstar +', '/admin/catalogueSE/index.asp?ID=5');
d.add(2,0,'Släpringar +', '/admin/catalogueSE/index.asp?ID=2');
d.add(19,18,'Startkondensatorer +', '/admin/catalogueSE/index.asp?ID=19');
d.add(24,0,'Termistorer +', '/admin/catalogueSE/index.asp?ID=24');
d.add(23,0,'Termokontakter +', '/admin/catalogueSE/index.asp?ID=23');
document.write(d);
//-->
</SCRIPT>
```

Permalänk: https://www.webforum.nu/p/1484868

## #7 — @nders, 2004-11-16T10:12Z

Ok, jag förstår ändå inte frågan. :)

Såg du min redigering av inlägget ovan, förresten?

Permalänk: https://www.webforum.nu/p/1484870

## #8 — Eclipse, 2004-11-16T10:17Z

```
Som det måste se ut sen
      <SCRIPT TYPE="text/javascript">
<!--
d = new dTree('d');
d.add(0,-1,'Produktkatalog');
d.add(1,0,'Allmänt om grafit (& elborstar) +', '/admin/catalogueSE/index.asp?ID=28');
d.add(2,0,'Borsthållare +', '/admin/catalogueSE/index.asp?ID=1');
d.add(3,0,'Elborstar +', '/admin/catalogueSE/index.asp?ID=3');
d.add(4,0,'Impregneringslack +', '/admin/catalogueSE/index.asp?ID=17');
d.add(5,0,'Ingjutningsmassa +', '/admin/catalogueSE/index.asp?ID=4');
d.add(6,0,'Kondensatorer +', '/admin/catalogueSE/index.asp?ID=18');
d.add(7,0,'Lindningstråd +', '/admin/catalogueSE/index.asp?ID=16');
d.add(8,0,'Släpringar +', '/admin/catalogueSE/index.asp?ID=2');
d.add(9,0,'Termistorer +', '/admin/catalogueSE/index.asp?ID=24');
d.add(10,0,'Termokontakter +', '/admin/catalogueSE/index.asp?ID=23');

d.add(11,3,'Bakelitgrafit +', '/admin/catalogueSE/index.asp?ID=30');
d.add(12,3,'Elektrografitborstar +', '/admin/catalogueSE/index.asp?ID=15');
d.add(13,3,'Hårdkol +', '/admin/catalogueSE/index.asp?ID=31');
d.add(14,3,'Koppargrafitborstar +', '/admin/catalogueSE/index.asp?ID=12');
d.add(15,3,'Naturgrafitborstar +', '/admin/catalogueSE/index.asp?ID=32');
d.add(16,3,'Silvergrafitborstar +', '/admin/catalogueSE/index.asp?ID=5');

d.add(17,18,'Belysningskondensatorer +', '/admin/catalogueSE/index.asp?ID=22');
d.add(18,18,'Driftkondensatorer +', '/admin/catalogueSE/index.asp?ID=20');
d.add(19,18,'Elektrolytkondensatorer +', '/admin/catalogueSE/index.asp?ID=21');
d.add(20,18,'Startkondensatorer +', '/admin/catalogueSE/index.asp?ID=19');
document.write(d);
//-->
</SCRIPT>
```

Permalänk: https://www.webforum.nu/p/1484875

## #9 — Eclipse, 2004-11-16T10:21Z

Tack Anders!

Jag såg ändringen. \*Kollar länken\* Det är Kungen som kommit fram till denna slutsats... Jag vet inte om han sitter inne med lite variabler... Han kanske mörkar!?

Hur som helst, om det inte vore för att menyn i fråga används på olika sidor så fungerar den befintliga koden. 

Men "rätt ordning" menar jag (enligt Kungen) 1-2-3 ordning och även bokstavsordning.

Permalänk: https://www.webforum.nu/p/1484877

## #10 — @nders, 2004-11-16T10:21Z

Okej, nu *tror* jag i alla fall att jag förstår vad du menar. Har du lust att visa koden som skapar javascriptet också?

Permalänk: https://www.webforum.nu/p/1484878

## #11 — Eclipse, 2004-11-16T10:25Z

```
Den befintliga javascriptkoden ser ut såhär: (vilken rörig tråd...)

SQL = "SELECT a.intID, a.intParentID, a.strName, a.strURL, a.bolView " _ 
	& " FROM [catalogueSE] as a " _
	& " ORDER BY a.strName;"
set mySQL = Conn.Execute(SQL)
IF NOT mySQL.EOF THEN listMyMenu = mySQL.GetRows()

...

<%
' ## DOCUMENTATION
'SQL = "SELECT a.intID, a.intParentID, a.strName, a.strURL, a.bolView " _ 

response.write "<SCRIPT TYPE=""text/javascript"">" & vbCRLF
response.write "<!--" & vbCRLF
response.write "d = new dTree('d');" & vbCRLF
response.write "d.add(0,-1,'Produktkatalog');" & vbCRLF

' ## LOOP THROUGHT MENUS
IF IsArray(listMyMenu) THEN
	myRow = listMyMenu
	FOR j = 0 TO UBound(myRow,2)
		response.write "d.add(" & myRow(0,j) & "," & myRow(1,j) & ",'" & myRow(2,j)
		IF myRow(4,j) = TRUE THEN response.write " +" ELSE response.write " -"
		response.write "', '" & request.serverVariables("PATH_INFO") & "?ID=" &myRow(0,j) & "');" & vbCRLF 
	NEXT
END IF

response.write "document.write(d);" & vbCRLF
response.write "//-->" & vbCRLF
response.write "</SCRIPT>" & vbCRLF
%>
```

Permalänk: https://www.webforum.nu/p/1484881

## #12 — Eclipse, 2004-11-16T12:20Z

> **@nders skrev:**
>
> Vad menar du med *rätt ordning* och  *bokstavsordning*? Jag förstår inte hur det ska vara sorterat på två sätt samtidigt... :/
> 
> Men, för att svara på frågan i topic; använd [Redim Preserve](http://www.devguru.com/technologies/wml/vbscript/quickref/redim.html) för att ändra storleken på en array.

De exempel på ReDim som jag har sett rör endmisionella arreyer. Det finns ingen möjlighget att jobba med tvådimmensionella arrayer?

Permalänk: https://www.webforum.nu/p/1484924

## #13 — @nders, 2004-11-16T12:22Z

Jodå, du kan använda Redim även för tvådimensionella arrayer, *men* du kan inte öka storleken på dimension ett, utan bara den andra dimensionen. I det här fallet är det ju den andra dimensionen du behöver öka, så det ska ju fungera.

Mvh

Permalänk: https://www.webforum.nu/p/1484927

## #14 — Eclipse, 2004-11-16T12:51Z

Fasen va trixigt!

Jag har nöjt mig med dagiskåd nu... quick & dirty.

Suger stor lång elefant-\[ditt favvorord, @nders\] men fungerar.

Permalänk: https://www.webforum.nu/p/1484951

## #15 — Eclipse, 2004-11-16T12:57Z

Jag är \*INTE\* nöjd med det jag gjort. Det bara \*MÄSTE\* få att gå med oändligt många sub-menyer... men jag får sova på saken och titta n'rmare på det när jag kommit på den förlösande klippet...

Permalänk: https://www.webforum.nu/p/1484954

---

Tråden på webben: https://www.webforum.nu/amne/asp/116015-dynamiska-arrayer
