注册 登录
编程论坛 VB6论坛

请教下 怎么可以实现text多行文本计算?

wangizchao 发布于 2018-12-10 23:20, 1582 次点击
只有本站会员才能查看附件,请 登录
想单击 按钮1 让text多行计算出结果并且覆盖原来多内容。
感谢各位

[此贴子已经被作者于2018-12-11 23:10编辑过]

3 回复
#2
wds12018-12-11 08:35
Private Sub Command1_Click()
  Dim sum1
  txt1 = Split(Text1.Text, vbCrLf) '按行进行分割
  Text1.Text = ""
  For i = 0 To UBound(txt1)
    If InStr(txt1(i), "+") Then
      sum1 = Split(txt1(i), "+")
      Text1.Text = Text1.Text & txt1(i) & "=" & Val(sum1(0)) + Val(sum1(1)) & vbCrLf
    End If
    If InStr(txt1(i), "-") Then
      sum1 = Split(txt1(i), "-")
      Text1.Text = Text1.Text & txt1(i) & "=" & Val(sum1(0)) - Val(sum1(1)) & vbCrLf
    End If
    If InStr(txt1(i), "*") Then
      sum1 = Split(txt1(i), "*")
      Text1.Text = Text1.Text & txt1(i) & "=" & Val(sum1(0)) * Val(sum1(1)) & vbCrLf
    End If
    If InStr(txt1(i), "/") Then
      sum1 = Split(txt1(i), "/")
      Text1.Text = Text1.Text & txt1(i) & "=" & Val(sum1(0)) / Val(sum1(1)) & vbCrLf
    End If
  Next
End Sub
#3
ZHRXJR2018-12-11 13:20
1、首先文本框中的+、-、*、/是文本数据,不是运算符,因此首先必须判断各行中是否包含+、-、*、/ 的字符。
2、找出参与运算的字符串,再将参与运算的字符串转换为数字。
3、最后进行运算就可以了。
只有本站会员才能查看附件,请 登录

程序代码:

Dim BDS, JSS, I As Integer

Private Sub Command1_Click()
Dim kkl() As String   '取出各行表达式的运算符的数值
ReDim kkl(UBound(BDS))
For I = 0 To UBound(BDS)
kkl(I) = Right(Left(BDS(I), 3), 1)   '取出表达式的运算符
Select Case kkl(I)
  Case "+"
    JSS = Split(BDS(I), "+")   '取出运算符二边的数据,存储在 JSS 数组中,下同
    Text2.Text = Text2.Text & Val(JSS(0)) + Val(JSS(1)) & vbCrLf    '在文本框2中显示计算结果。数据必须转换为数字数据!,下同
  Case "-"
    JSS = Split(BDS(I), "-")
    Text2.Text = Text2.Text & Val(JSS(0)) - Val(JSS(1)) & vbCrLf
  Case "*"
    JSS = Split(BDS(I), "*")
    Text2.Text = Text2.Text & Val(JSS(0)) * Val(JSS(1)) & vbCrLf
  Case "/"
    JSS = Split(BDS(I), "/")
    Text2.Text = Text2.Text & Val(JSS(0)) / Val(JSS(1)) & vbCrLf
End Select
Next I
End Sub

Private Sub Form_Load()
Text1.Text = Text1.Text & "33+33" & vbCrLf
Text1.Text = Text1.Text & "66+74" & vbCrLf
Text1.Text = Text1.Text & "14*68" & vbCrLf
Text1.Text = Text1.Text & "42/2" & vbCrLf
Text1.Text = Text1.Text & "55+4" & vbCrLf
BDS = Split(Text1.Text, vbCrLf) '将数据存储到 BDS 数组中
End Sub

#4
wangizchao2018-12-11 23:10
感谢各位
1