Avatar billede babyworm Nybegynder
23. juli 2005 - 22:03 Der er 14 kommentarer og
1 løsning

Spørgsmål til array

Hej,

Jeg har et spørgsmål til et array.

Jeg har en kommasepereret liste med nogle tal.
Jeg skal løbe igennem listen og udskrive værdierne samtidig med antalet af værdien.

Hvordan gør jeg det ?

Jeg har prøvet med dette:

<%
basket = "23,23,12,9,123,129,12,12,12"

arrBasket = Split(basket,",")

For t = LBound(arrBasket) To Ubound(arrBasket)

    strProd = arrBasket(t)

    For l = LBound(arrBasket) To UBound(arrBasket)

        strCount = "1"

        If int(arrBasket(l)) = int(strProd) Then
   
            strCount = strCount + 1

        End if

    Next

    Response.Write strCount & " x " & arrBasket(t) & "<br />"
Next
%>


Men dette giver mig ikke det rigtige resultat :)
Avatar billede erikjacobsen Ekspert
23. juli 2005 - 22:10 #1
Du kommer tættere på ved at flytte linien med

  strCount = 1

op før din "for l..."-løkke. Og så også lige fjerne "..." udenom.
Avatar billede busschou Praktikant
23. juli 2005 - 22:11 #2
jep
Men hvis du har 12 representeret 4 gange, ønsker du så at få at vide fire gange at tolv eksisterer fire gange?
For ellers skal du også holde styr på om du allerede har talt elementet op ,o)
Avatar billede babyworm Nybegynder
23. juli 2005 - 22:12 #3
Det var det eneste...

Tusinde tak.. Sad og blev helt langhåret.. :)

Kunne ikke lige finde fejlen..

:)
Avatar billede babyworm Nybegynder
23. juli 2005 - 22:13 #4
Busschou.. Den skal kun udskrive den en gang :)

Har du en ide til hvordan den kan tælles op ?
Avatar billede erikjacobsen Ekspert
23. juli 2005 - 22:14 #5
Du kan bruge en anden dims i ASP:

  basket = "23,23,12,9,123,129,12,12,12"
  arrBasket = Split(basket,",")
  set w = Server.CreateObject("Scripting.Dictionary")
  for i=lbound(arrBasket) to ubound(arrBasket)
    w.item(arrBasket(i)) = w.item(arrBasket(i))+1
  next
  for each word in w
    response.write word & " occurs " & w(word) & " times<br>"
  next
Avatar billede busschou Praktikant
23. juli 2005 - 22:15 #6
Yderst kan du definere en streng
fundneTal = ","
Hver gang du finder en strProd tjekker du om du har fundet den ved brug af Instr
Avatar billede busschou Praktikant
23. juli 2005 - 22:16 #7
eller du kan gøre som erikjacobsen foreslår ,o)
Avatar billede busschou Praktikant
23. juli 2005 - 22:16 #8
og så kan jeg gå i seng - lol
Avatar billede babyworm Nybegynder
23. juli 2005 - 22:17 #9
busschou:: Hvordan vil du gøre det ?
Avatar billede babyworm Nybegynder
23. juli 2005 - 22:19 #10
:) Kendte ikke lige den funktion ;)
Avatar billede babyworm Nybegynder
23. juli 2005 - 22:20 #11
Tusinde tak... Vil i ligge nogle svar, så i kan få lidt points ;D
Avatar billede busschou Praktikant
23. juli 2005 - 22:21 #12
noget ala
--
<%
basket = "23,23,12,9,123,129,12,12,12"
fundne = ""
arrBasket = Split(basket,",")
For t = LBound(arrBasket) To Ubound(arrBasket)
strProd = arrBasket(t)
If InStr(fundne&",",strProd&",") = 0 Then
  fundne = fundne &","&strProd
  strCount = 1
  For l = LBound(arrBasket) To UBound(arrBasket)
    If int(arrBasket(l)) = int(strProd) Then
      strCount = strCount + 1
    End if
  Next
  Response.Write strCount & " x " & arrBasket(t) & "<br />"
End If
Next
%>
--
Men eriks er ligeså godt
Avatar billede busschou Praktikant
23. juli 2005 - 22:21 #13
oki doki :o)
Avatar billede erikjacobsen Ekspert
23. juli 2005 - 22:22 #14
Jeg samler ikke på point, tak. Men du kan også få sorteret efter tallet:

basket = "23,23,12,9,123,129,12,12,12"
arrBasket = Split(basket,",")
set w = Server.CreateObject("Scripting.Dictionary")
for i=lbound(arrBasket) to ubound(arrBasket)
  w.item(clng(arrBasket(i))) = w.item(clng(arrBasket(i)))+1
next
a = w.keys()    'a is now an array of keys
for i=ubound(a)-1 to lbound(a) step -1
  for j=0 to i
    if a(j)>a(j+1) then tmp=a(j):a(j)=a(j+1):a(j+1)=tmp
  next
next
for i=lbound(a) to ubound(a)
  response.write a(i) & " = " & w(a(i)) & "<br>"
next
Avatar billede babyworm Nybegynder
24. juli 2005 - 12:04 #15
Tusinde 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