Dynamická pole   otázka

VB6/VBA

Ahoj, potřeboval bych poradit s polem. Chtěl bych deklarovat matici o n - řádcích a k - sloupcích. Pokud to ale napíšu jak je to v kódu, Ax(n) a Ay(k) háže mi to: Constant expression required. Něco ve smyslu že vyžaduje konstantu nebo něco takového. Nevíte jak to udělat abych rozměr pole nemusel mít jako konstantu? třeba Ax(6) Ay(12). Potřeboval bych to pole dynamicky měnit.

Private Sub cmdRegreseU_Click()
Dim n As Integer        'Počet měření
Dim k As Integer        'Stupeň polynomu
Dim i As Integer        'Index
Dim j As Integer        'Index

    n = cPocetU.Text
    k = cmbPolyU.Text

Dim A(1) As Double
Dim Ax(k) As Double
Dim Ay(n) As Double
    
    For i = 0 To n - 1
        For j = 0 To k
            Ax(i) = tTU(i).Text
            Ay(j) = (Ax(i)) ^ j
            A(j) = Ay(j)
            A(i) = Ax(i)
        Next j
    Next i
End Sub

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Ke změně velikosti pole slouží příkaz redim

ReDim Ax(k)

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Příp. plus Preserve pro zachování dat v poli.

Zvětšit stávající pole o 1 :

ReDim Preserve Ax(Ubound(Ax)+1)

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Dobrý den,

příkaz preserve moc nedoporučuji. Je to výkonostní zabiják (zejména pokud se jedná o velká pole a příkaz se mnohokrát opakuje). Lépe použít arraylist a položky přidávat pomocí add. Myslím, že se o tom na těchto stránkách již diskutovalo pokud potřebujete podrobnější informace.

Mějte se.

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback