Konstante Arrays

CaSch

Grünschnabel
Hi Leute,

ich hab hier schonmal durchgestöbert aber nichts gefunden was mir helfen könnte.

Ich bin relativ neu in der VB programmierung, genauergesagt ich hab noch keinen Plan, bräuchte aber für ein kleines Project was ich vorhabe ein konstantes Array.

Das Array sollte 8 stellen beinhalten und der inhalt ein boolean, bzw 0 oder 1 (wäre einfacher für mich).

Ich hab jetzt keinen Plan wie ich ein konstantes Array definieren kann.

Gruß

CaSch
 
Servus!

IMHO kann man Arrayinhalte unter VB nicht konstant setzten ...
was willst du überhaupt machen?

Deine gewünschte Funktionalität könntest du so nachbauen:

Code:
Private Sub Befehl0_Click()

Const a As String = "10001111"
Dim x As Variant
Dim aa As Variant

aa = toBooleanArray(a)
For Each x In aa
    Debug.Print "" & CStr(x)
Next x

End Sub

Private Function toBooleanArray(str As String) As Variant
    Dim fld() As Boolean
    Dim i As Integer
    ReDim fld(Len(str) - 1)
    
    For i = 0 To Len(str) - 1
      fld(i) = IIf(Mid(str, i + 1, 1) = "1", True, False)
    Next i
    
    toBooleanArray = fld
        
End Function

... was eigentlich blödsinn ist ...

Wenn du 8 Ja/Nein Werte Speichern willst würde ich das anders machen:

Z.Bsp.: --> Soll die Wertefolge Ja,Nein,Nein,Nein,Ja,Ja,Ja,Ja gespeichert werden

Dann würd ich einfach hingehen und sagen

2^7 2^6 2^5 2^4 2^3 2^2 2^1 2^0
Ja, Nein, Nein, Nein, Ja, Ja, Ja, Ja
1 0 0 0 1 1 1 1

=> 1 * 2 ^7 + 0 * 2 ^6 + 0 * 2 ^5 + 0 * 2^4 + 1 * 2^3 + 1*2^2 + 1 * 2^1 + 1 * 2^0=143

Um nun zu erfahren, welcher Schlater nun 1 oder 0 ist gehst du folgendermaßen vor:

Code:
Private Function toBooleanField(i As Integer) As Boolean()

Dim t As Integer
Dim j As Integer
Dim field(7) As Boolean

j = 0

While t <= i
    t = 2 ^ (j + 1)
    field(7 - j) = IIf((i And 2 ^ j) <> 0, True, False)
j = j + 1
Wend

toBooleanField = field

End Function
...

ja ja, ich weis, mal wieder viiiiiel zu umständlich....

Gruß Tom
 
Warum machst du nicht einfach ein Feld (1 to 8) as boolean ? Darin lassen sich doch deine 8 Bits gut speichern und über den Index abrufen.
 
Zurück