Hejsan ja har en sträng som ser ut så här: Då måste du först ta reda på vad 'variable' är för nått och sedan göra uträkningen, Ex. Detta problemet är inte helt enkelt om man ska kunna tolka tal med flera operatorer... Nöjer man sig däremot med en operator går det att lösa ganska enkelt, testa denna koden i en form med en knapp och 2 textboxar: >www.skrivihop.nu Ett sätt att göra det på:Sträng hjälp...
Text2 = "" & Slumptal & "" & variable & "" & Slumptal2 & ""
variable i strängen innehåller "+", "-", "*" eller "/" när ja skriver strängen så som ja gjort blir det juh
1-1 som srkivs ut det ja vill är att uträkningen görs, hur skulle koden se ut då?
MvhSv: Sträng hjälp...
Select Case variabel
case "+"
svar = slumptal1 + slumptal2
case "-"
svar = slumptal1 - slumptal2
'osv
End Select
Svaret har du sedan i variabeln 'svar'.
/DaPeSv: Sträng hjälp...
<code>
Private Sub Command1_Click()
Text2 = Calculate(Text1)
End Sub
Function Calculate(strTal As String) As Double
Dim Tal
If InStr(1, strTal, "+") Then
Tal = Split(strTal, "+")
Calculate = CDbl(Tal(0)) + CDbl(Tal(1))
ElseIf InStr(1, strTal, "-") Then
Tal = Split(strTal, "-")
Calculate = CDbl(Tal(0)) - CDbl(Tal(1))
ElseIf InStr(1, strTal, "*") Then
Tal = Split(strTal, "*")
Calculate = CDbl(Tal(0)) * CDbl(Tal(1))
ElseIf InStr(1, strTal, "/") Then
Tal = Split(strTal, "/")
Calculate = CDbl(Tal(0)) / CDbl(Tal(1))
End If
End Function
</code>
/JohanSv: Sträng hjälp...
Jag tolkar detta som att du vill påpeka att jag har särskrivet något ord, vilket?
/JohanSv: Sträng hjälp...
Lägg till en referens till "Microsoft Script Control" (msscript.oca)
Gör en funktion som ser ut så här:
<code>
Public Function EvalString(strToEval As String)
On Error Resume Next
Dim sc As New ScriptControl
sc.Language = "VBScript"
EvalString = sc.Eval(strToEval)
end Function
</code>
Sen använder du den bara som:
<code>
Text1.text = EvalString("20+109/30+(4*9)")
</code>
EDIT:
Ojsan, såg att det var ett gammalt inlägg..... Men någon har kanske hjälp av det :-)