|
| |

VB.NET - Fortgeschrittene| Re: String nach Zahlen (Formel) Teil1 | |  | | Autor: Martin01 | | Datum: 09.01.03 18:40 |
|
Option Strict Off
Option Explicit On
'Ich bin noch von VB6:
Imports VB = Microsoft.VisualBasic
'Vb6 VB.NET
'Len(expr) expr.Length
'Mid$(expr) expr.Substring
'?Case(expr) value.ToLower value.ToUpper
'Eval = Eval + value Eval += value
'Token = Token & meChar Token &= meChar
Public Class mrkEval
'Hier ist noch viel VB6 drin.
'Wer möchte und es NETter machen.
'Aufruf:
'
'Dim eval As New mrkEval()
'
'If eval.mrkEval("12^2+6^2") Then
' s = eval.Value
' Else
' s = 0
' ??? = eval.ErrorMessage
' End If
'
'Original VBn Vorlage von Aldo Vargas
Private propValue As Object
Private propErrorMessage As String
Public ReadOnly Property Value() As Object
Get
Return propValue
End Get
End Property
Public ReadOnly Property ErrorMessage() As String
Get
Return propErrorMessage
End Get
End Property
Public Function mrkEval(ByVal expr As String) As Boolean
'In der Fehlerbehandlung
'den Wert berechnen ermittlen
Try
propValue = Eval(expr.ToLower)
propErrorMessage = ""
Return True
Catch Ex As Exception
propErrorMessage = Ex.Message
Return False
End Try
End Function
Private Function Eval(ByVal expr As String) As Object
Dim value As Object
Dim operand As String
Dim pos As Short = 1
Do Until pos > Len(expr)
Select Case Mid(expr, pos, 3)
Case "not", "or ", "and", "xor", "eqv", "imp"
operand = Mid(expr, pos, 3)
pos = pos + 3
End Select
Select Case Mid(expr, pos, 1)
Case " "
pos = pos + 1
Case "&", "+", "-", "*", "/", "\", "^"
operand = Mid(expr, pos, 1)
pos = pos + 1
Case ">", "<", "="
Select Case Mid(expr, pos + 1, 1)
Case "<", ">", "="
operand = Mid(expr, pos, 2)
pos = pos + 1
Case Else
operand = Mid(expr, pos, 1)
End Select
pos = pos + 1
Case Else
Select Case operand
Case ""
value = Token(expr, pos)
Case "&"
Eval = Eval & value
value = Token(expr, pos)
Case "+"
Eval = Eval + value
value = Token(expr, pos)
Case "-"
Eval = Eval + value
value = -Token(expr, pos)
Case "*"
value = value * Token(expr, pos)
Case "/"
value = value / Token(expr, pos)
Case "\"
value = value \ Token(expr, pos)
Case "^"
value = value ^ Token(expr, pos)
Case "not"
Eval = Eval + value
value = Not Token(expr, pos)
Case "and"
value = value And Token(expr, pos)
Case "or "
value = value Or Token(expr, pos)
Case "xor"
value = value Xor Token(expr, pos)
Case "eqv"
value = VB6.Eqv(value, Token(expr, pos))
Case "imp"
value = VB6.Imp(value, Token(expr, pos))
Case "=", "=="
value = value = Token(expr, pos)
Case ">"
value = value > Token(expr, pos)
Case "<"
value = value < Token(expr, pos)
Case ">=", "=>"
value = value >= Token(expr, pos)
Case "<=", "=<"
value = value <= Token(expr, pos)
Case "<>"
value = value <> Token(expr, pos)
End Select
End Select
Loop
Eval = Eval + value
End Function |  |
 | 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 |
  |
|
vb@rchiv CD Vol.6 vb@rchiv Vol.6
Geballtes Wissen aus mehr als 8 Jahren vb@rchiv!
Online-Update-Funktion Entwickler-Vollversionen u.v.m.Jetzt zugreifen Tipp des Monats Neu! sevCommand 4.0 
Professionelle Schaltflächen im modernen Design!
Mit nur wenigen Mausklicks statten auch Sie Ihre Anwendungen ab sofort mit grafischen Schaltflächen im modernen Look & Feel aus (WinXP, Office, Vista oder auch Windows 8), inkl. große Symbolbibliothek. Weitere Infos
|