Avatar billede maagefinke Nybegynder
20. april 2003 - 18:54 Der er 11 kommentarer og
1 løsning

Udskrivning af arrays - definere en tæller

Hej, et lille problem
Jeg kan ikke finde ud af at få nedenstående udskrevet fordi jeg ikke kan bruge arrayid som counter da arrayid er brugerbestemt.
Hvordan kan jeg definere en tæller (counter)til brug for output?
Option Explicit
Dim Person(100) As PersonType
Dim ArrayId As Integer
Dim taeller As Integer
Dim antal As Integer


Private Sub cmdinput_Click()
On Error Resume Next
For taeller = 1 To 2
Person(ArrayId).Nr = InputBox("Skriv nr.: ")
Person(ArrayId).Navn = InputBox("Skriv navn")
Person(ArrayId).Adresse = InputBox("Skriv adresse")
Person(ArrayId).Alder = InputBox("Skriv alder")
Next
End Sub

Private Sub cmdoutput_Click()

MsgBox "Nr.: " & ArrayId & vbCrLf & "Navn: " & Person(ArrayId).Navn & vbCrLf & "Adresse: " & Person(ArrayId).Adresse & vbCrLf & "Alder: " & Person(ArrayId).Alder
End Sub
Avatar billede sjh Nybegynder
20. april 2003 - 21:33 #1
Brug LBound() og UBound()

For taeller = LBound(Person()) To UBound(Person())
.....
......
Avatar billede maagefinke Nybegynder
20. april 2003 - 22:58 #2
Tak sjh, hvor har du dog været i flere dage?
Men hvis jeg nu taster vælgter 2 gennemløb bliver dataene fra 1 gennemløb ikke gemt. Taster jeg fx navn a, adresse avej osv og derefter b, bvej osv får jeg ved output kun navn b og bvej men til gengæld 2 gange. Men er det et andet spørgsmål?
Avatar billede sjh Nybegynder
20. april 2003 - 23:08 #3
Hvad er meningen med det du vil lave?
Avatar billede maagefinke Nybegynder
20. april 2003 - 23:11 #4
Umiddelbart ingen. Jeg prøver bare om jeg kan finde ud af det med arrays! Og så løb jeg altså ind i dette problem!:0))
Avatar billede sjh Nybegynder
20. april 2003 - 23:14 #5
jo men prøver du på at finde fx et navn i et array eller hvad
Avatar billede maagefinke Nybegynder
20. april 2003 - 23:20 #6
Det ved jeg ikke. Jeg sidder og læser om "sammensatte typer" og har i et kodemodul lavet denne kode:
Type persontype
    Nr As Integer
    Navn As String
    Adresse As String
    Alder As Integer
End Type
og så for at få en forståelse af hvad det er jeg sidder og prøver at lære, tja så prøvede jeg om jeg kunne lave et for next forløb!
Avatar billede sjh Nybegynder
20. april 2003 - 23:38 #7
prøv denne lille demo

'-------------------------------------- Form1 --------------------------------------
Option Explicit

Private Type PersonType
    Nr As Integer
    Navn As String
    Adresse As String
    Alder As Integer
End Type

Private Person() As PersonType

Private Sub Command1_Click()
Dim taeller As Integer
'UBound = 2
'LBound = 0

  For taeller = LBound(Person()) To UBound(Person()) '(fra 0 til 2 = 3)
    'Udskriver på Form1
    Print "Adresse: " & Person(taeller).Adresse
    Print "Alder: " & Person(taeller).Alder
    Print "Navn: " & Person(taeller).Navn
    Print "Nr: " & Person(taeller).Nr
    Print ""
    'Udskriver på Form1
  Next taeller
End Sub

Private Sub Form_Load()
Dim i As Integer
ReDim Person(2) As PersonType '(fra 0 til 2 = 3)
  For i = 0 To 2
    'Tilføjer for test
    Person(i).Adresse = "Adresse " & (i + 1)
    Person(i).Alder = (20 + i)
    Person(i).Navn = "Navn " & (i + 1)
    Person(i).Nr = i
    'Tilføjer for test
  Next i
End Sub
'-------------------------------------- Form1 --------------------------------------
Avatar billede maagefinke Nybegynder
20. april 2003 - 23:48 #8
Jotak, prøver lige.
Avatar billede sjh Nybegynder
20. april 2003 - 23:53 #9
prøv at bruge denne her i starten:

Private Sub Form_Load()
Dim i As Integer
'Nu kan du prøve at den et andet tal i x (ReDim Person(x) As PersonType)
ReDim Person(4) As PersonType '(fra 0 til 4 = 5)
  For i = LBound(Person()) To UBound(Person()) '(fra 0 til 2 = 3)
    'Tilføjer for test
    Person(i).Adresse = "Adresse " & (i + 1)
    Person(i).Alder = (20 + i)
    Person(i).Navn = "Navn " & (i + 1)
    Person(i).Nr = i
    'Tilføjer for test
  Next i
End Sub
Avatar billede sjh Nybegynder
20. april 2003 - 23:54 #10
'Nu kan du prøve at den et andet tal i x (ReDim Person(x) As PersonType)

=

'Nu kan du prøve at give et andet tal i x (ReDim Person(x) As PersonType)
Avatar billede maagefinke Nybegynder
21. april 2003 - 00:01 #11
Mange tak sjh, det fremsendte virker fint, så jeg prøver lige at studere det lidt nærmere. Det er ret overvældende lige nu.
Avatar billede sjh Nybegynder
21. april 2003 - 00:40 #12
God fornøjelse med det. Og tak for point :-)
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