webForumDet fria alternativet

arrayer..

ASP

6 svar · 351 visningar · startad av Thomasa

Medlem sedan aug. 2002351 inlägg
Frågan#1

finns säkert sen tidigare men jag lyckas ändå inte hitta när jag söker..

jag har en array som ska innehålla ett värde med en distans och ett med ett id.

sparar dem nu genom att separera distansen och idt med :, jag har sedan en funktion som sorterar (som jag hittade här ;))

Den fungerar fin när jag bara sorterar distansen och inte tar med id:t i arrayen, så frågan är: Hur kan jag sortera distanserna och behålla id:t intill?

har helt hjärnsläpp :/

Function SortArray(arvektor)
Dim i,j, temp
for i = 0 to ubound(arvektor)
	for j = 1 to ubound(arvektor)
		if arVektor(i) < arVektor(j) then
			temp = arVektor(i)
			arVektor(i) = arVektor(j)
			arVektor(j) = temp
		end if
	next
next

End Function
Medlem sedan dec. 200012 464 inlägg
#2

Du borde använda en två-dimensionell array istället.

Dim v(22,1)

v(0,0) = distans
v(0,1) = id
...
SortArrray v

Sub SortArray(arvektor)
Dim i,j, temp
    for i = 0 to ubound(arvektor)
         for j = 1 to ubound(arvektor)
               if  arVektor(i,0) < arVektor(j,0) then
                   temp = arVektor(i,0)
                   arVektor(i,0) = arVektor(j,0)
                   arVektor(j,0) = temp
               end if
         next
    next
End Sub
Medlem sedan aug. 2002351 inlägg
#3

Tack Lars, två-dimensionell array var en bra idé men den sorterar inte med subrutinen du skrivit, utan tar bort id:t istället, vad kan vara galet?

Medlem sedan aug. 2002351 inlägg
#4

http://www.4guysfromrolla.com/webtech/011601-1.shtml

Där finns svaret på en fungerande sorteringsfunktion för 2 dimensionella arrayer om någon annan får samma problem!

Medlem sedan maj 200010 687 inlägg
#5

Gamla hederliga bubble-sort... :OO

Medlem sedan dec. 200012 464 inlägg
#6

Det som var galet var att jag glömde att även flytta det andra elementet i arrayen.

Sub SortArray(arvektor)
Dim i,j, temp
    for i = 0 to ubound(arvektor)
         for j = 1 to ubound(arvektor)
               if  arVektor(i,0) < arVektor(j,0) then
                   temp = arVektor(i,0)
                   arVektor(i,0) = arVektor(j,0)
                   arVektor(j,0) = temp
                   temp = arVektor(i,1)
                   arVektor(i,0) = arVektor(j,1)
                   arVektor(j,1) = temp
               end if
         next
    next
End Sub
Medlem sedan aug. 2002351 inlägg
#7

ja då var ju din enklare :) nu löste de sig men tack så mycket iaf!!

381 ms totalt · 3 externa anrop · v20260731065814-full.767b4345
120 ms — deklarationer (db)
134 ms — hämta statistik (db)
124 ms — hämta tråd, inlägg och bilagor (db)