vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Erstellen von dynamischen Kontextmen?s - wann immer Sie sie brauchen!  
 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

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
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
String nach Zahlen (Formel)168Raphael Scherer09.01.03 09:57
Re: String nach Zahlen (Formel)863IsoLizer09.01.03 15:47
Re: String nach Zahlen (Formel) Teil178Martin0109.01.03 18:40
Re: String nach Zahlen (Formel) Teil280Martin0109.01.03 18:41
Danke 61Raphael Scherer10.01.03 07:45
Re: String nach Zahlen (Formel)76Martin0112.01.03 22:20

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