WCM Forum

WCM Forum (http://www.wcm.at/forum/index.php)
-   Programmierung (http://www.wcm.at/forum/forumdisplay.php?f=17)
-   -   VB Frage... (http://www.wcm.at/forum/showthread.php?t=40312)

renew 22.12.2001 21:19

VB Frage...
 
Kann man in VB ein Array mit Strings, statt den Indizes ansprechen? Also zB. so: array("eins"), array("zwei"), usw...

Wenn ja, wie deklarier ich so ein array?

Wenn nicht, könnte ich dynmisch während mein Programm läuft aus Usereingaben Variablen/arrays deklarieren? Oder geht des auch nicht?

Dank euch schon mal... ;)

Sonic 23.12.2001 00:32

Hi!

Also meines wissens gibt es keine Möglichkeit direkt ein array so zu deklarieren das man es mit einem Key ansprechen kann.

Du kannst entweder eine Collection mit einer Klasse verwenden. Ich finde das aber etwas umständlich. (und weiss die syntax auch nichtmehr:) )

Oder du machst es so wie ich es immer mache. Du machst einen neuen Typ der einen Key und ein oder mehrere Werte hat. Machst mit diesem Typ ein array. Und eine Globlae Variable die deine Items mitzählt.Dann brauchst du zum setzen und lesen mit dem Key nurnoch 2 kleine Funktionen.

Beispiel:

Code:

Private Type MyArrayType
  Value As String
  key As String
End Type

Dim MyArray() As MyArrayType
Dim MyArrayCount As Long

Public Function SetMyArray(key As String, Value As String)
  MyArrayCount = MyArrayCount + 1 'Die anzahl der einträge um eins erhöhen
  ReDim Preserve MyArray(MyArrayCount - 1) 'Das array um eins vergrößern -1 deswegen damit in myarraycount immer die richtiger anzahl steht
  'Key und value zuweisen
  MyArray(MyArrayCount - 1).key = key
  MyArray(MyArrayCount - 1).Value = Value
End Function

Public Function GetMyArray(key As String) As String
  Dim i As Long
  'Gehe alle einträge durch
  For i = 0 To MyArrayCount - 1
    If MyArray(i).key = key Then
      'Wenn ein entsprechender Eintrag gefunden wurde dann gib ihn zurück
      GetMyArray = MyArray(i).Value
      Exit Function
    End If
  Next i
  'Wenn das Programm hierher kommt wurde kein Eintrag mit ensprechendem key gefunden
End Function

Ich habe dir auch ein VB6 Beispiel Projekt angehängt das das ganze ein bisschen mehr veranschaulicht.

Ich hoffe das hilft dir weiter!

lg

renew 23.12.2001 18:57

Super danke!

Bin mir ziemlich sicher, dass ich mit deinem beispiel als Anhang was anfangen kann.

Nur noch eine Frage dazu: wie zählt MyArrayCount weiter?? Hab nirgends gefunden, dass der um 1 weiter zählt, wenn ein neuer key hinzu kommt. Oder ist das so eine Art Konstante, wo immer die Zahl drin steht wie viele Werte der Array enthält?

renew 23.12.2001 20:32

passt scho, habs schon im Code gefunden. Hab ich nämlich nicht so ganz verstanden, wie des gehen soll, dass der auf einmal weiß, auf welcher Stelle der is.


Alle Zeitangaben in WEZ +2. Es ist jetzt 16:49 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag