Avatar billede sansalvador Nybegynder
30. august 2004 - 09:24 Der er 9 kommentarer og
1 løsning

Find laveste værdi i Array

Hejsa ..

Jeg har et array med nogle forskellige keys og værdier:

fx:

array(34) = "hej"
array(55) = "hejsa igen med et større tal"

Det jeg så gerne vil, er at finde den mindste key (som er 34) med en funktioner, der virker i Access...

Altså:
- Hypotetisk funktion:

min(array()) skal gerne printe "34" ... Hvordan hulen gør jeg det? :)
Avatar billede overchord Nybegynder
30. august 2004 - 09:50 #1
Kan du bruge Lbound() Det er laveste dimension i arrayet.
Alternativt bliver du noed til at loebe gennem arrayet ofr finde foerste streng som ikke er null:

for i = lbound(mitarray) to ubound(mitarray)
  if not isnull(mitarray(i)) then
      msgbox i, vbokonly
  end if
next i
Avatar billede sansalvador Nybegynder
30. august 2004 - 13:31 #2
Den finder jo ikke den laveste værdi, den udskriver jo bare alle sammen fra ende til anden....
Avatar billede sansalvador Nybegynder
30. august 2004 - 13:35 #3
Men jeg tror jeg kan bruge den, hvis jeg bare har mulighed for følgende:

Lad os sige jeg kun vil have 3 ting ind i arrayet (det er kommatal, så det kan være lidt tricky):

array("0,51") = "txt1"
array("0,43") = "txt2"
array("1.22") = "txt3"

Dvs jeg med Lbound kan finde 0,51 og så udskrive "txt1" ...

MEN .. Når jeg prøver at finde Lbound, så finder funktionen bare tallet 0 ..
Og det er jo fordi jeg definerer arrayet som  DIM ARRAY(0 to 10) AS DOUBLE

Men den skal ikke starte i 0 .. den skal jo starte i fx 0,51 .. Jeg er lidt lost mht. hvad man gør ...
Avatar billede sansalvador Nybegynder
30. august 2004 - 13:35 #4
Rettelse:

Dvs jeg med Lbound kan finde 0,43 og så udskrive "txt1" ...

og

den skal jo starte i fx 0,43
Avatar billede overchord Nybegynder
30. august 2004 - 14:57 #5
ok lige for at vaere helt sikker her : Det er er to-dimensionelt array du bruger?
Jeg blev bare forsvirret af at du har hhv array("0,51") og array("1.22")
Avatar billede sansalvador Nybegynder
30. august 2004 - 15:09 #6
Jeg bruger kun 1-dimensionelt ..

For at være ærlig .. Jeg aner næsten intet om VB-programmering. Al programmeringserfaring har jeg fra PHP .. Og der er der ingen ben i at sætte nogle keys ind i et array, for derefter at finde den mindste key og spytte dens data ud.

Ja . Jeg smider både 0,51 og 1,22 ind i arrayet som key. Men det er stadig kun et 1-dimensionelt array.
Avatar billede moba Nybegynder
30. august 2004 - 17:13 #7
Slutter mig lige til overchord's løsning med denne

Dim laveste
Dim MyArray(1 To 100) ' eller hvordan dit array nu er
laveste = LBound(MyArray, 1) 'en dimension
MsgBox laveste ' viser 1
Avatar billede kabbak Professor
22. marts 2005 - 22:55 #8
Dim I
I = 10000000
for T = LBound(MyArray, 1) to Ubound(MyArray, 1)
if MyArray(t) < I then I =MyArray(t)
next

Laveste = i
Avatar billede kabbak Professor
22. marts 2005 - 23:13 #9
det er vist sådsn du mener

Dim I
I =1000000 ' skal være over det største tal
for T = LBound(MyArray, 1) to Ubound(MyArray, 1)
if MyArray(t) < I then Laveste = T
next
Avatar billede sansalvador Nybegynder
23. marts 2005 - 13:39 #10
Kan ikke huske, om jeg kunne bruge svaret fra overchord, men det er også ligemeget nu :)

Det du har gang i der kabbak, er vist ASP :)
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
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

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