Benutzer mit den meisten Antworten
Array mit Werten füttern und auslesen

Frage
-
Hallo,
programmiere jetzt schon einige Zeit mit Visual Basic, aber mit den Arrays habe ich noch nicht ganz gecheckt.
Ich bastele gerade an einer eigentlich sinnlosen Forms-Anwendung, möchte aber meine Fähigkeiten damit ein wenig trainieren. Und zwar möchte ich ein Dropdown-Menü haben, dass erst nach Knopfdruck sichtbar wird:
Sub Form1_Load (ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Me.Dropdown.hide End Sub Sub ShowButton_Click Me.Dropdown.Show End Sub
und das soll mit den Werten aus dem Array gefüttert werden.
Dropdown-Menü mit Werten füttern, geht klar:
Sub Form1_Load (ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Me.Dropdown.Items.add ("blablabla")<br/> End Sub
Aber Die Werte sollen ja aus dem Array kommen.
Und zudem brauche ich eine Variable, die immer die Anzahl der Elementa im Array enthält, weil ich die Anzahl der Elemente für einen Zufallsgenerator Brauche, so stelle ich mir das vor:
Dim Generator as New Random Dim Array_Werte as Integer Dim Zufall as Integer Zufall = Generator.Next (1, x) 'bei x sollte dann die Anzahl der Elemente im Array stehen
Die Anzahl der Elemente im Array weiß das Programm vorher noch nicht, weil diese vom User definiert werden (nächster Punkt). Da bräuchte ich auch noch einen entsprechende Prozedur, die nach einem Knopfdruck den in einem Textfeld stehenden Wert dem Array hinzufügt und den Index vom Array um 1 erweitert.
Dim Array as Array Sub Ausgedachter-Button_Click Array = Array + Entertxt.text 'Geht natürlich nicht, hier sollte jetzt der im Textfeld Entertxt stehende Wert dem Array hinzugefügt werden End Sub
Und dann würde ich am Liebsten die Elemente des Arrays durchnummerieren, sodass ich einfach eine Sub habe, die den der Zufallszahl zugehörigen Wert aus dem Array zieht. Und damit die Werte im Array nach dem Schließen des Programms erhalten bleiben, würde ich letztere gerne sichern (edentweder TXT-Datei oder Dauerhafte Private Variable oder so)
So, wenn irgendjemand mir da weiterhelfen könnte, fände ich das gut.
TIA, Lukas
Antworten
-
Hallo Lukas,
Arrays finden direkt nur selten Verwendung, im allgemeinen verwendet man dafür Auflistungen .
Denn sie sind in ihrer Größe fest und ein permanente Anpassung wie sie Visual Basic mit Redim erlaubt,
ist relativ ineffizient. Eine Auflistung erledigt das im Hintergrund.Für Dein Beispiel wäre eine List(Of Integer) hinreichend.
Um die Anzahl durch den Anwender vorgeben zu lassen,
könntest Du ein NumericUpDown-Steuerlement verwendenDie Zufallszahlen könntest Du dann erzeugen mit:
Private Function Zufallszahlen() As List(Of Integer) Dim generator As New Random Dim anzahl = CInt(Me.NumericUpDown1.Value) ' Anzahl aus einem NumericUpDown Steuerlement Dim liste As New List(Of Integer)(anzahl) For index = 1 To anzahl liste.Add(generator.Next(1, anzahl)) Next Return liste End Function
Gruß Elmar- Als Antwort vorgeschlagen Robert BreitenhoferModerator Freitag, 10. Dezember 2010 11:15
- Als Antwort markiert Robert BreitenhoferModerator Dienstag, 21. Dezember 2010 17:51
Alle Antworten
-
Hallo,
programmiere jetzt schon einige Zeit mit Visual Basic, aber mit den Arrays habe ich noch nicht ganz gecheckt.
Ich bastele gerade an einer eigentlich sinnlosen Forms-Anwendung, möchte aber meine Fähigkeiten damit ein wenig trainieren. Und zwar möchte ich ein Dropdown-Menü haben, dass erst nach Knopfdruck sichtbar wird:
Sub Form1_Load (ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Me.Dropdown.hide
End Sub
Sub ShowButton_Click
Me.Dropdown.Show
End Subund das soll mit den Werten aus dem Array gefüttert werden.
Dropdown-Menü mit Werten füttern, geht klar:
Sub Form1_Load (ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load<br/> Me.Dropdown.Items.add ("blablabla")<br/> End Sub
Aber Die Werte sollen ja aus dem Array kommen.
Und zudem brauche ich eine Variable, die immer die Anzahl der Elementa im Array enthält, weil ich die Anzahl der Elemente für einen Zufallsgenerator Brauche, so stelle ich mir das vor:
Dim Generator as New Random<br/> Dim Array_Werte as Integer<br/> Dim Zufall as Integer<br/> <br/> Zufall = Generator.Next (1, x) 'bei x sollte dann die Anzahl der Elemente im Array stehen<br/>
Die Anzahl der Elemente im Array weiß das Programm vorher noch nicht, weil diese vom User definiert werden (nächster Punkt). Da bräuchte ich auch noch einen entsprechende Prozedur, die nach einem Knopfdruck den in einem Textfeld stehenden Wert dem Array hinzufügt und den Index vom Array um 1 erweitert.
Dim Array as Array<br/> <br/> Sub Ausgedachter-Button_Click<br/> Array = Array + Entertxt.text 'Geht natürlich nicht, hier sollte jetzt der im Textfeld Entertxt stehende Wert dem Array hinzugefügt werden<br/> End Sub
Und dann würde ich am Liebsten die Elemente des Arrays durchnummerieren, sodass ich einfach eine Sub habe, die den der Zufallszahl zugehörigen Wert aus dem Array zieht. Und damit die Werte im Array nach dem Schließen des Programms erhalten bleiben, würde ich letztere gerne sichern (edentweder TXT-Datei oder Dauerhafte Private Variable oder so)
So, wenn irgendjemand mir da weiterhelfen könnte, fände ich das gut.
TIA, Lukas
- Zusammengeführt Thorsten DörflerModerator Freitag, 10. Dezember 2010 05:54 Identisches Thema
-
Hallo LukeLR,
schau mal hier bei den Grundlagenvideos.
http://ecn.channel9.msdn.com/o9/ch9/0669/570669/ExpressGrundlagen08_ch9.wmv
Liebe Grüße Stefan | Cheers Stefan I'm using VB 2008 Express -
Hallo Lukas,
Arrays finden direkt nur selten Verwendung, im allgemeinen verwendet man dafür Auflistungen .
Denn sie sind in ihrer Größe fest und ein permanente Anpassung wie sie Visual Basic mit Redim erlaubt,
ist relativ ineffizient. Eine Auflistung erledigt das im Hintergrund.Für Dein Beispiel wäre eine List(Of Integer) hinreichend.
Um die Anzahl durch den Anwender vorgeben zu lassen,
könntest Du ein NumericUpDown-Steuerlement verwendenDie Zufallszahlen könntest Du dann erzeugen mit:
Private Function Zufallszahlen() As List(Of Integer) Dim generator As New Random Dim anzahl = CInt(Me.NumericUpDown1.Value) ' Anzahl aus einem NumericUpDown Steuerlement Dim liste As New List(Of Integer)(anzahl) For index = 1 To anzahl liste.Add(generator.Next(1, anzahl)) Next Return liste End Function
Gruß Elmar- Als Antwort vorgeschlagen Robert BreitenhoferModerator Freitag, 10. Dezember 2010 11:15
- Als Antwort markiert Robert BreitenhoferModerator Dienstag, 21. Dezember 2010 17:51
-
Hallo LukeLR,
warum die gleiche Frage in zwei deutschsprachichen Foren?
http://social.msdn.microsoft.com/Forums/de-DE/vbasicexpresseditionde/thread/54f14f66-1c32-4b9e-bd3d-065704da4da9
Liebe Grüße Stefan | Cheers Stefan I'm using VB 2008 Express