Programmieren - alles kontrollieren 4.940 Themen, 20.676 Beiträge

Wie splitte ich Zahlen in Visual Basic?

pole / 2 Antworten / Baumansicht Nickles

Hallo, habe kurz zuvor eine Frage gestellt zu dem Cäsar Chiffre.
Nun hätte ich ne lösung aber da kenn ich den Code nicht
Wenn ich in mein Eingabefeld z.b. die zahl 10 Eingebe.
Mit welchen Befehl könnte ich diese Zahl splitten in x und y
Bzw. wenn ich die Zahl 100 Splitte in x, y und Z. Ist das möglich?
Die lösung würde mir helfen da ich sonst zu jeder Zahl zugriff hätte
Mfg Michael
P.s. kenn jemand ein Forum in welches ich spezifisch für Visual Basic fragen stellen kann?

bei Antwort benachrichtigen
Sovereign Sylvia pole „Wie splitte ich Zahlen in Visual Basic?“
Optionen

Hi Pole,
folgender Vorschlag:


Private Sub SplitNumbers()
Dim i As Integer
Dim p_N() As String 'Ein eindimensionales Array erstellen
ReDim p_N(0) 'Das Array initialisieren
For i = 0 To Len(Me.Text1.Text) - 1 'Beginn der Abfrageschleife
p_N(i) = Mid$(Me.Text1.Text, i + 1, 1) 'Ein Feld des Arrays mit Wert füllen
ReDim Preserve p_N(UBound(p_N) + 1) 'Das Array um ein leeres Feld erweitern
Next i
For i = 0 To UBound(p_N) - 1
Debug.Print p_N(i) 'Die Werte des Arrays werden im Direktfenster angezeigt.
Next i
End Sub

Bei dieser Methode kann die Zahl beliebig lang sein.
Me.Text1.Text muss wenigstens eine Ziffer enthalten; ansonsten muss eine entsprechende Abfrage ergänzt werden. Statt Me.Text1.Text lässt sich natürlich auch eine String-Variable verwenden. Das Array kann auch auf Modulebene erstellt und weiter verwendet werden.

Gruss
Sovereign Sylvia

Mein sz streikt heute wieder ------ Nobody is perfect, and we prove it every day.
bei Antwort benachrichtigen
Borlander pole „Wie splitte ich Zahlen in Visual Basic?“
Optionen

Wenn das ganze als Integer vorliegt dann kannst Du die i-te Ziffer (von rechts) von x einfach mit Modulo-Operation und Ganzzahl-Division betimmmen:
Ziffer_i = (x % 10^i) \ (10^(i-1))

Beispiel: 3 Ziffer von 4711
(4711 % 10^3) \ (10^(3-2)) = (4711 % 1000) \ 100 = 711 \ 100 = 7


Gruß
Borlander

bei Antwort benachrichtigen