Avatar billede tuhe Nybegynder
30. september 2000 - 14:40 Der er 2 kommentarer

Formindske et array

Hej,

Mit problem er følgende:

Jeg er ved at lave en shop, hvor jeg har to endimensionelle arrays - numarray og qtyarray. \'numarray\' indeholder ID-numrene på de forskellige varer, der henviser til primærnøglen i en varetabel. \'qtyarray\' indeholder oplysninger om det bestilte kvantum af hver vare. De to arrays har fælles index, dvs. <%=numarray(1)%> giver id for vare X og <%=qtyarray(1)%> giver antal af vare X. Det går også fint med at få redimmet begge arrays, når der ligges mere i indkøbskurven. Men hvis en kunde sætter kvantum af en vare til 0 vil jeg gerne have, at denne vare ryger ud af begge arrays. Lige nu bliver varen liggende i numarray og får så tilsvarende værdien 0 i qtyarray. Det gir\' bare nogle problemer, når jeg senere skal query min db - hvor UBOUND(numarray) er stopklods i min rs-løkke. Hvordan får jeg trukket mit array sammen igen, så den vare hvis kvantum=0 ryger helt ud???? Jeg har prøvet følgende:
highcount=UBOUND(numarray)
  FOR i=1 TO highcount 
    nThisQty=int(request.form(\"txtItemQty\" & i))
  qtyarray(i)=nThisQty 
\'-- hvis antal er sat til 0
  IF qtyarray(i)=0 THEN
    nIndex=i
    FOR j=nIndex to highcount-1 
    numarray(j)=numarray(j+1)
    qtyarray(j)=qtyarray(j+1)
    redim preserve numarray(UBOUND(numarray)-1)
    redim preserve qtyarray(UBOUND(numarray)-1)
    highcount=UBOUND(numarray)
    NEXT
  END IF
  NEXT
Avatar billede spectual Nybegynder
01. juni 2001 - 01:55 #1
Er du stadigvæk interesseret i en løsning?
Avatar billede eagleeye Praktikant
20. april 2002 - 01:49 #2
Mangler du stadig??? måske du skal tjekke på hvor stor di array inden du sletter:


highcount=UBOUND(numarray)
  FOR i=1 TO highcount 
    nThisQty=int(request.form("txtItemQty" & i))
  qtyarray(i)=nThisQty 
'-- hvis antal er sat til 0
  IF qtyarray(i)=0 THEN
    nIndex=i
    FOR j=nIndex to highcount-1 
    numarray(j)=numarray(j+1)
    qtyarray(j)=qtyarray(j+1)
    if UBOUND(numarray) > 1 then
      redim preserve numarray(UBOUND(numarray)-1)
      redim preserve qtyarray(UBOUND(numarray)-1)
    else
      redim numarray(1)
      redim qtyarray(1)
    end if
    highcount=UBOUND(numarray)
    NEXT
  END IF
  NEXT
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester