|
| |

VB.NET - Fortgeschrittene| Re: String nach Zahlen (Formel) Teil2 | |  | | Autor: Martin01 | | Datum: 09.01.03 18:41 |
| Private Function Token(ByVal expr As String, ByRef pos As Short) As Object
Dim value, meChar As String
Dim es, pl As Short
Const QUOTE As String = """"
Do Until pos > Len(expr)
meChar = Mid(expr, pos, 1)
Select Case meChar
Case "&", "+", "-", "/", "\", "*", "^", " ", ">", "<", "=" : Exit Do
Case "("
pl = 1
pos = pos + 1
es = pos
Do Until pl = 0 Or pos > Len(expr)
meChar = Mid(expr, pos, 1)
Select Case meChar
Case "(" : pl = pl + 1
Case ")" : pl = pl - 1
End Select
pos = pos + 1
Loop
value = Mid(expr, es, pos - es - 1)
Select Case LCase(Token)
Case "sin"
Token = System.Math.Sin(Eval(value))
Case "cos"
Token = System.Math.Cos(Eval(value))
Case "tan"
Token = System.Math.Tan(Eval(value))
Case "exp"
Token = System.Math.Exp(Eval(value))
Case "log"
Token = System.Math.Log(Eval(value))
Case "atn"
Token = System.Math.Atan(Eval(value))
Case "abs"
Token = System.Math.Abs(Eval(value))
Case "sgn"
Token = System.Math.Sign(Eval(value))
Case "sqr"
Token = System.Math.Sqrt(Eval(value))
Case "rnd"
Token = VB.Rnd(Eval(value))
Case "int"
Token = VB.Int(CDbl(Eval(value)))
Case "day"
Token = VB.Day(Eval(value))
Case "month"
Token = VB.Month(Eval(value))
Case "year"
Token = VB.Year(Eval(value))
Case "weekday"
Token = VB.Weekday(Eval(value))
Case "hour"
Token = VB.Hour(Eval(value))
Case "minute"
Token = VB.Minute(Eval(value))
Case "second"
Token = VB.Second(Eval(value))
Case "date"
Token = VB.Today
Case "date$"
Token = VB.DateString
Case "time"
Token = VB.TimeOfDay
Case "time$"
Token = VB.TimeString
Case "timer"
Token = VB.Timer()
Case "now"
Token = VB.Now
Case "len"
Token = VB.Len(Eval(value))
Case "trim"
Token = VB.Trim(Eval(value))
Case "ltrim"
Token = VB.LTrim(Eval(value))
Case "rtrim"
Token = VB.RTrim(Eval(value))
Case "ucase"
Token = VB.UCase(Eval(value))
Case "lcase"
Token = VB.LCase(Eval(value))
Case "val"
Token = VB.Val(Eval(value))
Case "chr"
Token = VB.Chr(Eval(value))
Case "chrw"
Token = VB.ChrW(Eval(value))
Case "asc"
Token = VB.Asc(Eval(value))
Case "ascw"
Token = VB.AscW(Eval(value))
Case "space"
Token = VB.Space(Eval(value))
Case "hex"
Token = VB.Hex(Eval(value))
Case "oct"
Token = VB.Oct(Eval(value))
Case "environ"
Token = VB.Environ(Eval(value))
Case "curdir"
Token = VB.CurDir()
Case "dir"
If Len(value) Then
Token = VB.Dir(Eval(value))
Else
Token = VB.Dir()
End If
Case Else
Token = Eval(value)
End Select
Exit Do
Case QUOTE
pl = 1
pos = pos + 1
es = pos
Do Until pl = 0 Or pos > Len(expr)
meChar = Mid(expr, pos, 1)
pos = pos + 1
If meChar = QUOTE Then
If Mid(expr, pos, 1) = QUOTE Then
value = value & QUOTE
pos = pos + 1
Else
Exit Do
End If
Else
value = value & meChar
End If
Loop
Token = value
Exit Do
Case Else
Token = Token & meChar
pos = pos + 1
End Select
Loop
If IsNumeric(Token) Then
Return Val(Token)
ElseIf IsDate(Token) Then
Return CDate(Token)
End If
End Function
End Class |  |
 | 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
|
| |
|
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
|
|