WCM - Das österreichische Computer Magazin Forenübersicht
 

Zurück   WCM Forum > Rat & Tat > Programmierung

Programmierung Rat & Tat für Programmierer

Microsoft KARRIERECAMPUS

Antwort
 
Themen-Optionen Ansicht
Alt 22.12.2001, 21:19   #1
renew
Inventar
 
Registriert seit: 22.10.2000
Alter: 41
Beiträge: 5.552


Standard 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...
renew ist offline   Mit Zitat antworten
Alt 23.12.2001, 00:32   #2
Sonic
Master
 
Registriert seit: 28.03.2000
Alter: 45
Beiträge: 691


Sonic eine Nachricht über ICQ schicken
Standard

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
____________________________________
__________________
|»»»»»SONIC««««««|
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
Sonic ist offline   Mit Zitat antworten
Alt 23.12.2001, 18:57   #3
renew
Inventar
 
Registriert seit: 22.10.2000
Alter: 41
Beiträge: 5.552


Standard

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 ist offline   Mit Zitat antworten
Alt 23.12.2001, 20:32   #4
renew
Inventar
 
Registriert seit: 22.10.2000
Alter: 41
Beiträge: 5.552


Standard

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.
renew ist offline   Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 17:10 Uhr.


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