vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Brandneu! sevEingabe v3.0 - Das Eingabecontrol der Superlative!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Visual-Basic Einsteiger
Re: 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
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
HILFE HILFE621Andy288bln18.11.03 00:56
Re: HILFE HILFE359Stomper19.11.03 07:55
Re: HILFE HILFE327Stomper19.11.03 13:26
Re: HILFE HILFE315Andy288bln19.11.03 21:27
Re: HILFE HILFE379Andy288bln23.11.03 14:46
Re: HILFE HILFE277Stomper23.11.03 23:17
Re: HILFE HILFE303Andy288bln24.11.03 20:24

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

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

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