Prüfen, ob Wert in Array

Hallo VB’ler,

nach langer Zeit arbeite ich mich wieder in VB6 ein und muss feststellen, dass zwar das Meiste noch da ist, es aber immer wieder mal an Kleinigkeiten mangelt.

So suche ich derzeit nach einer einfachen Möglichkeit um festzustellen, ob ein Array einen bestimmten Wert enthält (Index als Rückgabewert). In PHP kein Problem, da gibt es den Befehl array_search, aber anscheinend habe ich Tomaten auf den Augen, weil ich für VB nichts entsprechendes finden kann. Könnt ihr mir weiterhelfen?

Danke!

Gruß

Robi

So suche ich derzeit nach einer einfachen Möglichkeit um
festzustellen, ob ein Array einen bestimmten Wert enthält
(Index als Rückgabewert). In PHP kein Problem, da gibt es den
Befehl array_search, aber anscheinend habe ich Tomaten auf den
Augen, weil ich für VB nichts entsprechendes finden kann.

Hallo Robi,

viel oder überhaupt weiterhelfen kann ich dir nicht weil ich VB nicht kenne.
Ich denk mir einfach es wird da keinen Befehl geben um ein Array zu durchsuchen, also müßtest du das mit einer Schleife übers Arrray tun.

Jetzt steht aber das Array irgendwo im Speicher. Möglicherweise gibt es eine API-Funktion die Searchmemory o.ä. lautet.

Mehr fällt mir dazu leider grad nicht ein.

Gruß
Reinhard

Soweit ich weis gibt es ein solchen Befehl nicht, es sei denn du nutzt eine Collection.

In einer Collection kann man aber nur Objekte ablegen, was dazu führt, dass z.B. einem Item kein neue String zugewiesen werden kann.

Vll. gibt es aber eine API
http://www.vb-fun.de/cgi-bin/loadframe.pl?ID=vb/api…

Hallo,

mir ist auch keine Möglichkeit in VB bekannt das zu tun.
Du kannst entweder ein Dictionary benutzen oder mit einer Schleife durch das Array laufen, wie schon gesagt wurde.

Private Function GetIndex() as Integer

For i = LBound(Array) to UBound(Array)
If Array(i) = gesuchterWert Then Exit For
Next i

GetIndex = i

End Function

Vielleicht hilft dir das, musst nurnoch das Array übergeben und die Zählvariable deklarieren.

Private Function GetIndex() as Integer

For i = LBound(Array) to UBound(Array)
If Array(i) = gesuchterWert Then Exit For
Next i

GetIndex = i

End Function

Argh ja nix sagen grober Fehler

Private Function GetIndex() as Integer
Dim bFound As boolean

bFound = False
For i = LBound(Array) to UBound(Array)
If Array(i) = gesuchterWert Then
bFound = True
Exit For
End If
Next i

If Not bFound Then i = -1

GetIndex = i

End Function