webForumDet fria alternativet

Dynamiska arrayer

14 svar · 475 visningar · startad av Eclipse

EclipseMedlem sedan juli 20003 825 inlägg
#1

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

LarsGMedlem sedan dec. 200012 464 inlägg
#2

Hur menar du?

dim x()
for i = 0 to 10
   x(i) = i
next
EclipseMedlem sedan juli 20003 825 inlägg
#3

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.

EclipseMedlem sedan juli 20003 825 inlägg
#4
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
@ndersMedlem sedan juni 200032 969 inlägg
#5

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 för att ändra storleken på en array.

EclipseMedlem sedan juli 20003 825 inlägg
#6

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>
@ndersMedlem sedan juni 200032 969 inlägg
#7

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

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

EclipseMedlem sedan juli 20003 825 inlägg
#8
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>
EclipseMedlem sedan juli 20003 825 inlägg
#9

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.

@ndersMedlem sedan juni 200032 969 inlägg
#10

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å?

EclipseMedlem sedan juli 20003 825 inlägg
#11
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
%>
EclipseMedlem sedan juli 20003 825 inlägg
#12

@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 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?

@ndersMedlem sedan juni 200032 969 inlägg
#13

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

EclipseMedlem sedan juli 20003 825 inlägg
#14

Fasen va trixigt!

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

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

EclipseMedlem sedan juli 20003 825 inlägg
#15

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...

131 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)