Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: VB6: Taulukon pituus

Armoletti [22.12.2006 18:06:11]

#

Miten saa palautettua taulukon koon numeroarvona.
Pitäisi saada taulukon joka solulle tehtyä jotain.

Dim i As Integer
For i = 0 To TAULUKKO_PITUUS
    taulukko(i) = "blaablaablaa"
Next

eli miten tässä esimerkissä saa selville TAULUKON_PITTUS

Antti Laaksonen [22.12.2006 18:35:21]

#

Funktio LBound kertoo taulukon alimman indeksin ja funktio UBound kertoo taulukon ylimmän indeksin.

Voit siis tehdä silmukan näin:

For i = LBound(taulukko) To UBound(taulukko)
    ' ...
Next

Tietysti jos tiedät, että taulukko alkaa aina nollasta, pelkkä UBound riittää.

Quirzo [29.12.2006 17:05:23]

#

Itellä ei jostain syystä ubound toiminut, miten piti.
Ehkä vaan sähläsin, käytin tälläistä koodia.

Taitaa olla ihan sama mutta lisätty jotain juttuja, sori jos sekoitin :D

Public Function UUBound(a As Variant) As Long
  On Error Resume Next
  Dim size As Long
  size = UBound(a)
  If Err = 9 Then
    UUBound = -1
  Else
    UUBound = size
  End If
End Function

nomic [29.12.2006 19:07:13]

#

Quizro, Kyllä tuo minulla toimii. Kokeilin sitä näin:

Private Sub Form_Load()
Dim taulu(10) As Variant

MsgBox UUBound(taulu)
End Sub

'ja tänne tuo funktiosi

Mutta jos 'taulu' ei ole taulu, niin silloin se palauttaa arvoksi nollan.

Quirzo [29.12.2006 20:11:34]

#

Joo, siis minulla toimii tuo funktio, mutta Uboundia en osannu käyttää, en tiiä miks :D

BadSource [30.12.2006 15:17:06]

#

Jos taulukossa on useampia ulottuvuuksia kuin vain yksi, niin UBoundille on ilmoitettava mistä ulottuvuudesta on kiinnostunut. Eli...

Dim Taulukko(2 to 4, 2 to 6) As String

MsgBox Lbound(Taulukko, 1) & " to " & Ubound(Taulukko, 1) '2 to 4
MsgBox Lbound(Taulukko, 2) & " to " & Ubound(Taulukko, 2) '2 to 6

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta