» »

Iteriranje imena spremenljivke ki je array [VB]

Iteriranje imena spremenljivke ki je array [VB]

gregor_83 ::

Rad bi zapisal vrednost spremenljivkam P1, P2,...P20 tako da bi vse skupaj teklo v DO...LOOP zanki, ampak ne vem kako naj spremenim ime spremenljivke vsakič ko začnem nov loop. Če bi imela vsaka spremenljivka samo eno vrednost bi lahko uporabil array, ampak vsak P# je že array s tremi vrednostmi.

Se pravi da bi izgledalo nekako takole:

Do Util MojPogojZaVrednost(i)
P(i) = nekaj kar zapiše tri vrednosti v ta array
i=i+1
LOOP

Upam da sem napisal dovolj jasno.

LjubimPeezde ::

reši to s strukturo ki hrani tri vrednosti
Odvisno od VBja.VB6.0 -> Type ; VB.NET -> Class, Structure če me spomin ne vara
:)

gregor_83 ::

Hvala, deluje!

Če bo kdaj kdo hotel vedeti kaj podobnega:
Primer je makro v Autocad2007 VBA

V glavnem modulu deklarirate nov Type:

Public Type DesignSpacePoint
Coordinate As Variant
Elevation As Single
End Type

In ga uporabite v svojem Sub-u (glej drugi Loop):

Private Sub cmdPoints_Click()

frmMain.Hide
Dim NL As String
Dim i As Integer

i = 1
NL = Chr(13) & Chr(10)

On Error Resume Next
Origin = ThisDrawing.Utility.GetPoint(, NL & "Sredina okna: ")
If Err **NI ENAKO** 0 Then
MsgBox "Ukaz je bil prekinjen.", vbInformation
frmMain.Show
Exit Sub
End If
OriginElevation = ThisDrawing.Utility.GetReal("Vpišite višino izbrane točke:")
If OriginElevation < 0 Then
Do
MsgBox "Prosim vpišite višino izbrane točke", vbExclamation
OriginElevation = InputBox("Vpišite višino izbrane točke:")
Loop While OriginElevation < 0
End If

Dim PointCoordinate(1 To 50) As DesignSpacePoint
'Dim PointHeight(1 To 50) As DesignSpacePoint


Do Until i = 50
On Error Resume Next
PointCoordinate(i).Coordinate = ThisDrawing.Utility.GetPoint(Origin, NL & i & ". točka:")
If Err **NI ENAKO** 0 Then
MsgBox "Ukaz je bil prekinjen.", vbInformation
frmMain.Show
Exit Sub
End If
PointCoordinate(i).Elevation = ThisDrawing.Utility.GetReal("Vpišite višino izbrane točke:")
If PointCoordinate(i).Elevation < 0 Then
Do
MsgBox "Prosim vpišite višino izbrane točke", vbExclamation
PointCoordinate(i).Elevation = InputBox("Vpišite višino izbrane točke:")
Loop While PointCoordinate(i).Elevation < 0
End If
i = i + 1
Loop

End Sub


**NI ENAKO** nadomestite z ustreznim VBA operaterjem (slo-tech misli da je slab HTML:)) )

neoto ::

A to veš, da VB podpira tudi večdimenzionalna polja?
Dim premica(100) as long
Dim ravnina(100,100) as long
dim prostor(100,100,100) as long
dim n_prostor(100,100,100... (n-krat) ... 100) as long

gregor_83 ::

Je to enako kot multidimentional matrix?

Če je, potem vem - sem najprej probal to, ampak ACAD VBA hoče da je spremenljivka, ki prestavlja tvojo izbrano točko tipa Variable, ki jo po izbiri točke z miško spremeni v array tipa Double s tremi member-ji (x,y,z).


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

VB6 poljuben string

Oddelek: Programiranje
7814 (695) primzx
»

[EXCEL] Pogojno kopiranje na drug list

Oddelek: Programiranje
61785 (1707) StratOS
»

Brute forcing :) in VB problemi

Oddelek: Programiranje
101341 (1139) StratOS
»

[VB6] Program Odštevalnik - verjetno preprosta rešitev ampak jest je ne najdem (strani: 1 2 )

Oddelek: Programiranje
515265 (4739) Nerdor
»

Kako v excelu shraniti kot sliko?

Oddelek: Programska oprema
262549 (2248) Slavček

Več podobnih tem