Avatar billede flashit Nybegynder
11. januar 2004 - 10:01 Der er 20 kommentarer og
1 løsning

Udskriv array i omvendt rækkefølge

Hej E.

Jeg har følgende kode:

For Each objFileItem in objFiles
        strExt = LCase(Right(objFileItem.Name,4))
        If strExt=".gif" OR strExt=".jpg" THEN
            arrBilleder(0,x) = objFileItem.Name
            arrBilleder(1,x) = Cstr(int(x/antalPrSide)+1)
            x = x + 1
        End if
    Next

    For x = 0 to UBound(arrBilleder,2)-1
    If CInt(arrBilleder(1,x)) = intPage Then
      ShowPic = Replace(arrBilleder(0,x), " ", "%20")
      Response.Write "<td onmouseover = ""this.style.backgroundColor = '#40647B';"" onmouseout = ""this.style.backgroundColor = 'white';"" align='center' valign='bottom'><a href='Large/" & arrBilleder(0,x) & "' onClick=""skrivsti(this.src)"">"
      Response.Write "<img src='" & "Thumb/" & arrBilleder(0,x) & "' border='0'>"
      Response.Write vbcrlf

      PictureNo = PictureNo + 1
      If PictureNo=4 Then
          Response.write "</tr><tr>"
          PictureNo = 0
      End if
    End If
    Next

Den virker fint, men jeg vil gerne have vist billederne i omvendt rækkefølge.

Kan i hjælpe mig med det :-)
Avatar billede erikjacobsen Ekspert
11. januar 2004 - 10:07 #1
For x = UBound(arrBilleder,2)-1 to 0
Avatar billede erikjacobsen Ekspert
11. januar 2004 - 10:11 #2
For x = UBound(arrBilleder,2)-1 to 0 step -1

....ellers går det selvfølgelig ikke ...
Avatar billede flashit Nybegynder
11. januar 2004 - 10:14 #3
Så bliver der ikke udskrev noget kode?
Avatar billede flashit Nybegynder
11. januar 2004 - 10:18 #4
Det kan da ikke passe, det er stadig samme rækkefølge?
Avatar billede erikjacobsen Ekspert
11. januar 2004 - 10:23 #5
Hvad skriver du?
Avatar billede flashit Nybegynder
11. januar 2004 - 10:24 #6
For x = UBound(arrBilleder,2)-1 to 0 step -1
    If CInt(arrBilleder(1,x)) = intPage Then
      ShowPic = Replace(arrBilleder(0,x), " ", "%20")
      Response.Write "<td onmouseover = ""this.style.backgroundColor = '#40647B';"" onmouseout = ""this.style.backgroundColor = 'white';"" align='center' valign='bottom'><a href='Large/" & arrBilleder(0,x) & "' onClick=""skrivsti(this.src)"">"
      Response.Write "<img src='" & "Thumb/" & arrBilleder(0,x) & "' border='0'>"
      Response.Write vbcrlf

      PictureNo = PictureNo + 1
      If PictureNo=4 Then
          Response.write "</tr><tr>"
          PictureNo = 0
      End if
    End If
    Next
Avatar billede erikjacobsen Ekspert
11. januar 2004 - 10:27 #7
Så har det vel noget med din sideopdeling:

arrBilleder(1,x) = Cstr(int(x/antalPrSide)+1)

den linie vil nok ikke bare passe til at løbe dem baglæns igennem
Avatar billede flashit Nybegynder
11. januar 2004 - 10:32 #8
Jeg prøvede lige at sætte step op til -4, og det gav det rigtige resultat, men jeg fatter ikke at det skulle have noget med sideopdelingen at gøre, da den "bare" løber antallet af billeder igennem.

Vil det hjælpe hvis du får hele koden?
Avatar billede erikjacobsen Ekspert
11. januar 2004 - 10:35 #9
arrBilleder(1,x) indeholder vel den "side" billedet skal vises på. Og det
er de samme sider selvom vi løber dem igennem baglæns. Men billederne på
en og samme side vises vel baglæns?
Avatar billede flashit Nybegynder
11. januar 2004 - 10:38 #10
det ved jeg ikke. Tester det lige :-)
Avatar billede erikjacobsen Ekspert
11. januar 2004 - 10:39 #11
Hvis det er tilfældet "hacker" vi bare arrBilleder(1,x)    ;))
Avatar billede flashit Nybegynder
11. januar 2004 - 10:41 #12
Det er helt rigtigt, den udskriver billederne omvendt pr. side.
Kan man rette rækkefølgen at siderne til, som koden er skrevet?
Avatar billede erikjacobsen Ekspert
11. januar 2004 - 10:43 #13
Prøv (utestet)

For Each objFileItem in objFiles
        strExt = LCase(Right(objFileItem.Name,4))
        If strExt=".gif" OR strExt=".jpg" THEN
            arrBilleder(0,x) = objFileItem.Name
            arrBilleder(1,x) = Cstr(int(x/antalPrSide)+1)
            x = x + 1
        End if
    Next

max=arrBilleder(1,x-1)+1
for x=0 to ubound(arrBilleder,2)
  arrBilleder(1,x)=max-arrBilleder(1,x)
next

osv. derefter
Avatar billede flashit Nybegynder
11. januar 2004 - 10:53 #14
Ok der er blæret :-)
Nu er det kun en lille detalje som driller.

Hvis jeg har 10 billeder, og der bliver vist 4 billeder pr side.
Så bliver de vist som 2, 4, 4 billeder pr side.
Jeg vil jo gerne have 4, 4, 2 billeder pr side. (det var også det de blev før), men det er jo fordi vi bare udskrive omvendt.
Er det også noget man kan rette til?
Avatar billede erikjacobsen Ekspert
11. januar 2004 - 10:56 #15
Selvfølgelig. Og det gør vi måske på denne måde, som yderligere er lidt simplere (utestet):

For Each objFileItem in objFiles
        strExt = LCase(Right(objFileItem.Name,4))
        If strExt=".gif" OR strExt=".jpg" THEN
            arrBilleder(0,x) = objFileItem.Name
            x = x + 1
        End if
    Next

y=0
for x=ubound(arrBilleder,2) to 0 step -1
  arrBilleder(1,x) = Cstr(int(y/antalPrSide)+1)
  y=y+1
next
Avatar billede erikjacobsen Ekspert
11. januar 2004 - 10:57 #16
Hvorfor har du forøvrigt
  UBound(arrBilleder,2)-1
i den sidste for-løkke. Altså det er "-1" jeg undrer mig over
Avatar billede flashit Nybegynder
11. januar 2004 - 11:04 #17
Det ved jeg ikke, det er en kode som jeg har fået hjælp til. Men din løsning er helt perfekt.

Jeg rettede bare lige denne til y=-1, ellers "manglede" der et billede på den første side.

Man mange tak :-)
og så lige et svar.
Avatar billede erikjacobsen Ekspert
11. januar 2004 - 11:09 #18
Ok, det med -1 og +1 og så videre kan jeg heller ikke overskue uden
at prøve. Men jeg samler ikke på point - du er velkommen til at tage dem selv.
Avatar billede flashit Nybegynder
11. januar 2004 - 11:16 #19
Nej, tak. Det er dine points :-)
Avatar billede erikjacobsen Ekspert
11. januar 2004 - 11:17 #20
Ja, sikkert, men jeg samler ikke på point. De er kun til bøvl. Slut herfra.
Avatar billede flashit Nybegynder
11. januar 2004 - 13:01 #21
OK. Men tak for hjælpen :-)
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