webForumDet fria alternativet

Dynamisk tvådimensionell array

3 svar · 489 visningar · startad av Obbelix

ObbelixMedlem sedan okt. 2002257 inlägg
#1

Sitter och har problem med en flerdimensionell array som jag vill kunna utöka dynamiskt.
Den ska vara tom från början sen när vissa kriterier i en loop uppfylls ska den lägga till en "rad" i arrayen och stoppa in data där. Sen när ett värde i recordsetet ändras ska arrayen loopas igenom, några saker ska från arrayen in i en selectfråga mm, därefter ska arrayen tömmas och fyllas på igen om kriterierna uppfylls. Jag lyckas dock inte riktigt få till det, den verkar inte utöka som jag vill. Utdrag av det jag har idag:

dim teamArr()
redim teamArr(2,0)
cat = 0
do while....
  if cat > 0 AND cat <> rs("cat") then
    loopa igenom arrayen och töm den sedan
    redim teamArr(2,0)
  end if
  if kriterer = uppfyllda then
    redim preserve teamArr(2,ubound(teamArr,1))
    teamArr(0,ubound(teamArr,1)) = värde1
    teamArr(1,ubound(teamArr,1)) = värde2
    teamArr(2,ubound(teamArr,1)) = värde3
  end if
loop

exempel på vad jag vill ha i arrayen:

31 | 132 |1734
34 | 135 |1735
36 | 137 |1734
37 | 139 |1734

På stället där arrayen loopas ska varje "rad" kollas mot de andra raderna, så det blir väl en loop i en loop likt:

For x = 0 To UBound(teamArr,1)
  For xx = 0 To UBound(teamArr,1)
     lite kod som ska kollas
  next
next

Troligtvis gör jag något fel vid redim preserve eller så har jag tänkt helt fel, men jag finner ingen info alls om hur jag ska gå till väga. En annan utväg är ju att ha tre enkla arrayer, men tyckte det skulle vara smidigare men en fler-dimensionell.
Nån som kan hjälpa?

voigtann1Medlem sedan juni 20019 519 inlägg
#2

Kan du inte plocka ut recordset som en tvådimensionell array med GetRows?

ObbelixMedlem sedan okt. 2002257 inlägg
#3

nja, jag ska även in med resultatet av en insert (id) i samma array. Tror jag får testa med tre enkla arrayer å se om det funkar som jag vill.

ObbelixMedlem sedan okt. 2002257 inlägg
#4

Glöm allt. Jag som använde fel fält från databasen när jag jämförde "cat" i toppen så arrayen redimade vid varje loop. Dock såg jag inte det förns jag skrivit om allt till tre enkla arrayer, så om jag gjorde rätt får vi aldrig veta då jag inte tänker skriva om det igen.

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