| |

Visual-Basic EinsteigerRe: HILFE HILFE | |  | Autor: Stomper | Datum: 19.11.03 13:26 |
| Also ich hab hier mal was geproggt, wahrscheinlich gibt es elegantere lösungen, aber so funktioniert es auf alle Fälle. Kannst es ja selbst noch etwas umstellen und ändern.
Dieser Code kann jetzt mit Zahlen bis in den 10.000er Bereich arbeiten, falls mehr benötigt wird müssten halt die Variablentypen verändert werden.
Einstellungen: Standard-Exe
Steuerelemente: Textfeld mit namen Text1
Dim operator As Single ' Globale Variable die den Operator speichert.
' Diese Funktion gibt die Anzahl der Zahlen bis zum Operator zurück
Private Function howmanyleft(Kette As String) As Integer
Dim counter As Integer
counter = 1
Dim io As Boolean
io = True
Dim check As String
' Die Schleife geht so lange jeden Buchstaben durch,
' bis sie auf einen Operator trift und zählt entsprechend
' den Counter hoch.
Do While io = True
check = Mid(Kette, counter, 1)
If check = "+" Or check = "-" Or check = "*" Or check = "/" Then io = False
counter = counter + 1
Loop
howmanyleft = counter - 2 ' Schleifenbedingt zählt der Counter immer 2 zuviel
' Zurückgegeben wird jetzt die Anzahl der Zahlen vor dem Operator
End Function
' Diese Funktion gibt die Anzahl der Zahlen nach dem Operator zurück.
Private Function howmanyright(Kette As String) As Integer
Dim counter As Integer
counter = 1
Dim laenge As Integer
Dim io As Boolean
io = True
Dim check As String
Do While io = True
check = Mid(Kette, counter, 1)
If check = "+" Or check = "-" Or check = "*" Or check = "/" Then io = False
counter = counter + 1
Loop
counter = counter - 2 ' Bis hier das selbe wie howmanyleft
laenge = Len(Kette) - counter
' Wenn man von der Gesamtlänge die Anzahl der Zahlen vor dem
' Komma subtrahiert bleiben die Restzahlen und der Operator übrig.
howmanyright = laenge - 1 ' Den Operator ziehen wir jetzt noch von der Anzahl
' ab.
End Function
Private Sub Text1_DblClick()
If operator = 0 Then ' Wenn kein Operator eingegeben wurde.
MsgBox "Keine Richtige Rechnung eingegeben!", vbExclamation
Else ' Wenn Operator steht.
Dim Rechnung As String
Rechnung = Text1.Text
Dim Zahl1 As Integer
Dim Zahl2 As Integer
Dim Ergibnis As Integer
Zahl1 = Left(Rechnung, howmanyleft(Rechnung)) ' Zahl vor dem Operator
Zahl2 = Right(Rechnung, howmanyright(Rechnung)) ' Zahl nach dem Operator
' Weist dem Operator die entsprechende Rechnung zu
If operator = 43 Then Ergebnis = Zahl1 + Zahl2
If operator = 45 Then Ergebnis = Zahl1 - Zahl2
If operator = 42 Then Ergebnis = Zahl1 * Zahl2
If operator = 47 Then Ergebnis = Zahl1 / Zahl2
Text1.Text = Ergebnis
End If
operator = 0 ' Setzt den Operator zurück.
End Sub
Private Sub Text1_KeyPress(KeyAscii As Integer)
' Sorgt dafür das nur zahlen eingegeben werden können.
Select Case KeyAscii
Case 48 To 57, 8 ' Zahlen und Backspace
Case 42, 43, 45, 47 ' + - * /
If KeyAscii = 42 Or 43 Or 45 Or 47 Then operator = KeyAscii
' Operator der eingegeben wurde speichern in Globaler Variable operator.
Case Else ' alle anderen Zeichen ignorieren
KeyAscii = 0
End Select
End Sub Ich scheue keiner Kritik, wenn euch ein Fehler oder Bug auffallen sollte, könnt ihr ruhig posten.
Gruß
Stomper |  |
 | Sie sind nicht angemeldet! Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.
Einloggen | Neu registrieren |
  |
|
sevWizard für VB5/6 
Professionelle Assistenten im Handumdrehen
Erstellen Sie eigene Assistenten (Wizards) im Look & Feel von Windows 2000/XP - mit allem Komfort und zwar in Windeseile :-) Weitere InfosTipp des Monats Oktober 2025 Matthias KozlowskiUmlaute konvertierenErsetzt die Umlaute in einer Zeichenkette durch die entsprechenden Doppelbuchstaben (aus ä wird ae, usw.) Access-Tools Vol.1 
Über 400 MByte Inhalt
Mehr als 250 Access-Beispiele, 25 Add-Ins und ActiveX-Komponenten, 16 VB-Projekt inkl. Source, mehr als 320 Tipps & Tricks für Access und VB
Nur 24,95 EURWeitere Infos
|
|
|
Copyright ©2000-2025 vb@rchiv Dieter Otter Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.
Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel
|
|